我有一个原始的车辆图像,我需要实现的是用不同的颜色填充这个图像: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
目前我遇到了两个问题。首先,我想弄清楚如何显示一些区域的填充背景,如轮子,例如。第二个问题是如何创建最相似的彩色车辆图像。
发布于 2015-01-09 18:21:26
你会想要在Photoshop中完成大部分的工作。您需要一个基本的图像,是透明的地方,你想要显示。然后,您需要创建一个掩码图像,以显示您想要颜色的位置(使用alpha表示要使用多少色调)。然后你将掩盖图像并在你的背景上画出来。
我假设一个带有图层掩码的PhotoShop文件用于创建初始示例中的有色车辆。您将需要这两个层(基本层和掩码)作为单独的PNG文件。创建原始Photoshop文件的人应该能够提供这些文件。
试图从一个单一的平面图像编程地这样做,不太可能给你想要的结果。
https://stackoverflow.com/questions/27864283
复制相似问题