1

白い枠線と黒い色で塗りつぶされた画像があります。実行時に黒色を別の色に変更したいだけです。ユーザーは実行時に HSB 形式で色を選択します。どうやってやるの?const float colorMasking[4]={255, 255, 255, 255};を使用して CGImageCreateWithMaskingColorsを試しました。 しかし、毎回 nil CGImageRefを取得しています。助けてください。

- (UIImage*) maskBlackInImage :(UIImage*) image color:(UIColor*)color
{
    const CGFloat colorMasking[4] = { 222, 255, 222, 255 };
    CGImageRef imageRef = CGImageCreateWithMaskingColors(image.CGImage, colorMasking);
    UIImage* imageB = [UIImage imageWithCGImage:imageRef];
    CGImageRelease(imageRef);
    return imageB;

}

電球の画像を添付しています-黒で塗りつぶされ、白い枠線と透明な背景の電球 黒色で塗りつぶされた電球、白い枠線、背景が透明な電球

アップデート:

受け入れられた回答のコードを使用した後、黒色を別の色で塗りつぶすことができました。ただ、白枠に少し色が見えました。画像はそれほど鮮明ではありません。出力の添付:

出力 - 色で塗りつぶされた黒

4

1 に答える 1