2012-03-08 15 views
0

(CoreActionでマスクをレンダリングできないため)マスクを使用してイメージを正常に保存するには、少し回避策を使用しています。CGContextのレイヤー方法

CGContextRef context = CGBitmapContextCreate(nil, cWidth, cHeight, bitsPerComponent, bytesPerRow, CGColorSpaceCreateDeviceRGB(), CGImageGetBitmapInfo(image)); 
//the mask: 
CGContextClipToMask(context, CGRectMake(0,0,1280,935), self.image.image.CGImage); 
//the image to mask: 
CGContextDrawImage(context, CGRectMake(0, 0, 1280,935), viewImage.CGImage); 

CGImageRef mergeResult = CGBitmapContextCreateImage(context); 
    saver = [[UIImage alloc] initWithCGImage:mergeResult]; 

だからこれはかなりうまく機能し、マスクがターゲット画像にその形状の外のすべてのものをカット:

は、ここに私のコードです。これにより、周辺領域と背景が白くなります。白を表示するのではなく、イメージ/カラー/パターンなどを表示したいので、基本的に別のイメージをスタックしたいと思っています。

どうすればいいですか?ありがとう

答えて

1

背景に背景を描画してからクリップし、同じコンテキストに画像を描画します。

+0

こんにちは、私は実際にはこれを試しましたが、無駄です。何が起きているかは、最初のCGContextDrawImageがすべてを引き継ぐことです。 – user339946

+0

実際には、それを傷つける。これは私の間違いです。光の錯覚が私のマスクが現れていないと思うように私をだましていました。ありがとうございました – user339946

関連する問題