私は2つの既存のイメージの合成からイメージマスクを作成しようとしています。 I出力することができる。このUIImage(MaskImageFullCGImageMaskCreateでマスクを作成するとすべて黒(iphone)
UIImage * BaseTextureImage = [UIImage imageNamed:@"background.png"];
UIImage * MaskImage = [UIImage imageNamed:@"my_mask.jpg"];
UIImage * ShapesBase = [UIImage imageNamed:@"largerimage.jpg"];
UIImage * MaskImageFull;
CGSize finalSize = CGSizeMake(480.0, 320.0);
UIGraphicsBeginImageContext(finalSize);
[ShapesBase drawInRect:CGRectMake(0, 0, 480, 320)];
[MaskImage drawInRect:CGRectMake(150, 50, 250, 250)];
MaskImageFull = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
:
まずIは、マスキング画像が小さい画像で構成された複合、背景と同じサイズの大きいイメージの作成を開始します)それは右に見える、それはフルサイズの背景サイズであり、それは画面上の適切な場所に、黒で私のマスクオブジェクトを持つ白い背景です。
は、私は、このを通じてMaskImageFull UIImageを渡す:
CGImageRef maskRef = [maskImage CGImage];
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), NULL, false);
CGImageRef masked = CGImageCreateWithMask([image CGImage], mask);
UIImage* retImage= [UIImage imageWithCGImage:masked];
問題はretImageはすべて黒であるということです。私があらかじめ作られたUIImageをマスクとして送ってもうまくいけば、それは複数の画像からそれを作るようにしようとするときだけです。
私はそれが色空間のものだと思っていましたが、それを修正するように見えませんでした。どんな助けでも大歓迎です!
大変お手伝いしました。完成させるために関数のヘッダーとフッターを追加できますか? – Eden
thumbnailPoint.xとは何ですか? @ catlan –
@ Reza.Ab申し訳ありませんが、私は覚えていません。 9年後には縮尺も変わっています。私はほとんどの場合マスクrectと仮定し、イメージrectは同じでなければなりません。それを試してみて、あなたが見つけたものを教えてください。 – catlan