2009-07-10 12 views
2

私は、白い背景を持つUIImage(ユーザー図面によって生成された)を持っています。この画像の白い部分を透明にしたいと思います。また、これをPNGファイルに保存したいと思います。iphoneで白が透明になるようにUIImageをマスクする方法は?

私はフォーラムを見回しましたが、イメージを正しくマスクする方法を理解できません。誰もこれを前に試しましたか?

ありがとうございました。

+1

重複:http://stackoverflow.com/questions/633722/how-to-make-one-color-transparent-on-a-uiimage –

答えて

0

開始UIImageを完全に透明にしてから、その背後に別のUIImageViewを完全に白くしてみてください。

0

生データを取得し、白いピクセルを探し、それらのピクセルのアルファ値を変更して新しいNSDataオブジェクトに保存し、それをPNGに変換する必要があります。

難しいことではありませんが、私はそれを自明ではありません。

3

はかなり長いQuartz2d Programming Guidethis mailing list messageったらしいから

CGImageRef myMaskedImage = [myImage CGImage]; 
const float whiteMask[6] = { 255,255,255, 255,255,255 }; 
CGImageRef myColorMaskedImage = CGImageCreateWithMaskingColors(image, whiteMask); 

CGDataProviderRef provider; 
CGImageRef myPngImage = CGImageCreateWithPNGDataProvider(provider, NULL, true, kCGRenderingIntentDefault); 

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInt: 72], kCGImagePropertyDPIHeight, [NSNumber numberWithInt: 72], kCGImagePropertyDPIWidth, nil]; 
CGImageDestinationRef destRef = CGImageDestinationCreateWithURL ((CFURLRef)outPath, (CFStringRef)@"image.png" , 1, NULL); 
CGImageDestinationAddImage(destRef, myPngImage, (CFDictionaryRef)options); 
CGImageDestinationFinalize(destRef); 
CGRelease(destRef); 

CGImageRelease(myColorMaskedImage); 
CGImageRelease(myPngImage); 

...このような何かを試してみてください。

関連する問題