2010-02-15 2 views
4

У меня есть приложение для iPhone, которое позволяет человеку что-то нарисовать на экране пальцем. Они рисуют белой линией на черном фоне. Однако, когда я загружаю это изображение на веб-сервер, сама строка является белой. Я пытаюсь работать через основные графические библиотеки в поисках способа инвертировать цвет нарисованного изображения. Нет фона, поэтому он должен быть прозрачным. Выполнение инверсии изображения должно меняться от белого до черного.iPhone SDK Инверсия цветов UIImage

Кто-нибудь знает, возможно ли это через основную графическую библиотеку?

Cheers

ответ

-1

Да. Вы должны иметь возможность сделать это в CALayer по вызовам CGContext или напрямую с буфером на CGImage. Существуют и другие примеры того, как идти вперед и назад с сохранением изображения из UIView также в Stackoverflow.

+0

Не могли бы вы добавить несколько ссылок на эти примеры на SO здесь? – Palimondo

14

В итоге я нашел хороший способ сделать это. Вместо того, чтобы просто сделать фон исходного изображения прозрачным, я делаю его черным. Теперь на черном фоне белые линии. Затем это было просто вопросом:

UIGraphicsBeginImageContext(image.size); 
CGContextSetBlendMode(UIGraphicsGetCurrentContext(), kCGBlendModeCopy); 
[image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)]; 
CGContextSetBlendMode(UIGraphicsGetCurrentContext(), kCGBlendModeDifference); 
CGContextSetFillColorWithColor(UIGraphicsGetCurrentContext(),[UIColor whiteColor].CGColor); 
CGContextFillRect(UIGraphicsGetCurrentContext(), CGRectMake(0, 0, image.size.width, image.size.height)); 
UIImage *returnImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

Переменная «изображение» - это исходное изображение с белой линией на черном фоне. Спасибо за помощь David Sowsy

+0

Как вы установили цвет фона? – Slee

Смежные вопросы