0

私はUIBezierPath指を使って白い背景と黒いストロークで線を描くために使用しCGGraphicsContext()ています。白い背景を削除して透明にしたいと思います。いくつかのコードを試しましたが、うまくいきません。以下のコードは、画像全体を透明にします。黒いストロークを除いて、誰でも画像を透明にすることができます。前もって感謝します。質問が既にされている場合は申し訳ありません。

-(UIImage*) makeTransparent : (UIImage*) viewImage
{
    CGImageRef rawImageRef = viewImage.CGImage;
    const float colorMasking[6] = {255, 255, 255, 255, 255, 255};
    UIGraphicsBeginImageContext(viewImage.size);
    CGImageRef maskedImageRef = CGImageCreateWithMaskingColors(rawImageRef, colorMasking);
    CGContextTranslateCTM(UIGraphicsGetCurrentContext(), 0.0, viewImage.size.height);
    CGContextScaleCTM(UIGraphicsGetCurrentContext(), 1.0, -1.0);

    CGContextDrawImage(UIGraphicsGetCurrentContext(), CGRectMake(0, 0, viewImage.size.width, viewImage.size.height), maskedImageRef);
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    CGImageRelease(maskedImageRef);
    UIGraphicsEndImageContext();
    return newImage;
}
4

1 に答える 1