私は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;
}