Как перекрасить изображение с помощью CoreGraphics? - PullRequest
2 голосов
/ 10 февраля 2012

У меня есть картинка в оттенках серого.Можно ли перекрасить изображение в оттенки другого (произвольного) цвета?Примерно так, как на картинке ниже.

enter image description here

Я думаю, что могу сделать это, используя каждый пиксель изображения и меняя его по мере необходимости, но я думаю, что может быть лучшеway.

Я хотел бы сделать все это с помощью CoreGraphics.

1 Ответ

4 голосов
/ 13 февраля 2012

Я решил задачу, используя следующий код:

CGContextSaveGState(bitmapContext);
CGContextSetRGBFillColor(bitmapContext, red, green, blue, alpha);

CGContextTranslateCTM(bitmapContext, 0.0, contextHeight);
CGContextScaleCTM(bitmapContext, 1.0, -1.0);
CGContextDrawImage(bitmapContext, sourceImageRect, sourceImage);

CGContextSetBlendMode(bitmapContext, kCGBlendModeColor);
CGContextFillRect(bitmapContext, sourceImageRect);

CGContextRestoreGState(bitmapContext);

CGImageRef coloredImage = CGBitmapContextCreateImage(bitmapContext);

В этом коде bitmapContext это контекст, созданный с помощью CGBitmapContextCreate.

...