我有一幅灰色阴影的照片。是否可以用其他(任意)颜色的阴影对图像重新着色?如下图所示。

我认为可以通过访问图像的每个像素并根据需要进行更改来做到这一点,但我认为可能会有更好的方法。

我想使用CoreGraphics完成所有这些操作。

最佳答案

我使用以下代码解决了任务:

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创建的上下文。

关于ios - 如何使用CoreGraphics为图像重新着色?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9225834/

10-08 20:28