例如,在iOS工具栏中,您可以拖动自己的.png,它是不透明的黑色和透明的,并自动添加iOS蓝色光泽。
但是,我想知道如何自己做,但只有纯色才能做到。
例如,如果你有这个图像:
你会做什么来制作整个实心,粉红色,蓝色或灰色?我想通过用代码着色来减少我在应用中保存的.png版本的数量。
谢谢!
答案 0 :(得分:15)
这应该适合你:
- (UIImage *)colorImage:(UIImage *)origImage withColor:(UIColor *)color
{
UIGraphicsBeginImageContextWithOptions(origImage.size, YES, 0);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [color CGColor]);
CGContextFillRect(context, (CGRect){ {0,0}, origImage.size} );
CGAffineTransform flipVertical = CGAffineTransformMake(1, 0, 0, -1, 0, origImage.size.height);
CGContextConcatCTM(context, flipVertical);
CGContextDrawImage(context, (CGRect){ pt, origImage.size }, [origImage CGImage]);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
答案 1 :(得分:1)
从iOS 7开始,您现在可以使用单一颜色对黑色(灰度)/透明图像进行着色
UIImage *image = [UIImage imageNamed:@"myImage.png"];
UIImageView *imageView = [[UIImageView alloc]initWithImage:[image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]];
imageView.tintColor = [UIColor redColor];