我有一张灰色阴影的照片。是否可以以其他(任意)颜色的色调重新着色图像?如下图所示。
我想我可以通过访问图像的每个像素并根据需要更改它来做到这一点,但我认为可能有更好的方法。
我想使用CoreGraphics完成所有这些。
答案 0 :(得分:4)
我使用以下代码解决了任务:
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
创建的上下文。