単色に近いイメージがあります。付いていますが、白無地なので目立ちません。
実行時にこの画像を動的に色付けできるようにしたいのですが、UIImageRenderingModeAlwaysTemplate を使用せずに iOS 6 で行う必要があります。
画像はすべて無地の白で始まり、角を丸くするための小さなグラデーションが適用されます。
これまでのところ、私の最善の試みは GPUImage と UIImage のカテゴリを使用することでした
@implementation UIImage (BPAdditions)
- (UIImage *)imageWithColor:(UIColor *)color
{
GPUImageRGBFilter *stillImageFilter = [[GPUImageRGBFilter alloc] init];
CGFloat red = 0.0, green = 0.0, blue = 0.0, alpha =0.0;
[color getRed:&red green:&green blue:&blue alpha:&alpha];
stillImageFilter.red = red;
stillImageFilter.green = green;
stillImageFilter.blue = blue;
GPUImageChromaKeyFilter *stillImageFilter2 = [[GPUImageChromaKeyFilter alloc] init];
[stillImageFilter2 setColorToReplaceRed:0 green:0 blue:0];
stillImageFilter2.thresholdSensitivity = 0.2;
stillImageFilter2.smoothing = 0;
UIImage *img = [stillImageFilter imageByFilteringImage:self];
return [stillImageFilter2 imageByFilteringImage: img];
}
これは理想的ですが、RGB フィルターを使用すると、クリアな背景が黒くなります。これをクロマフィルターで除去すると、使用する色によって品質が異なります。
ターゲット カラーが黒になる可能性があります。その場合、このソリューションは完全に失敗します。