通过蒙版用颜色填充图像

时间:2015-01-09 15:50:10

标签: ios core-graphics

我有原始车辆图像,我需要实现的是用不同的颜色填充它: http://image.openlan.ru/images/25842748100117640420.png

我尝试使用以下代码访问它:

- (UIImage *) coloredImageWithColor:(UIColor *)color
{
    UIGraphicsBeginImageContext(self.size);

    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextTranslateCTM(context, 0, self.size.height);
    CGContextScaleCTM(context, 1.0, -1.0);

    CGContextSetBlendMode(context, kCGBlendModeDarken);
    CGRect rect = (CGRect){ CGPointZero, self.size };
    CGContextDrawImage(context, rect, self.CGImage);
    CGContextClipToMask(context, rect, self.CGImage);

    [color set];
    CGContextFillRect(context, rect);

    // wheel
    UIBezierPath *path = [UIBezierPath bezierPathWithOvalInRect:(CGRect){ 700, 200, 200, 200 }];
    CGContextSetBlendMode(context, kCGBlendModeClear);
    [path fill];

    UIImage *coloredImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return coloredImage;
}

当然,这不是我的预期:

http://image.openlan.ru/images/05312201634158625573.png

目前我遇到了两个问题。首先,我想弄清楚如何在某些区域显示填充背景,例如轮子。第二个是如何创建最相似的彩色车辆图像。

1 个答案:

答案 0 :(得分:0)

你想要在Photoshop中完成大部分工作。您需要一个在要显示的位置透明的基本图像。然后,您要创建一个掩码图像,显示您想要的颜色(使用alpha表示要使用多少色调)。然后你将掩盖图像并将其绘制在背景上。

我假设在您的初始示例中使用带有图层蒙版的PhotoShop文件来创建有色车辆。您需要将这两个图层(基础图层和蒙版)作为单独的PNG文件。创建原始Photoshop文件的人应该能够提供这些文件。

尝试从单个平面图像以编程方式执行此操作不太可能为您提供所需的结果。