チュートリアルでは、このメソッドを2つのパラメーターとともに使用します。image
およびmaskImage
、これらは、メソッドを呼び出すときに設定する必要があります。メソッドが同じクラスにあり、画像がバンドルにあると想定すると、呼び出しの例は次のようになります。
注-驚くことに、画像は同じサイズである必要はありません。
...
UIImage *image = [UIImage imageNamed:@"dogs.png"];
UIImage *mask = [UIImage imageNamed:@"mask.png"];
// result of the masking method
UIImage *maskedImage = [self maskImage:image withMask:mask];
...
- (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage {
CGImageRef maskRef = maskImage.CGImage;
CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef), NULL, false);
CGImageRef maskedImageRef = CGImageCreateWithMask([image CGImage], mask);
UIImage *maskedImage = [UIImage imageWithCGImage:maskedImageRef];
CGImageRelease(mask);
CGImageRelease(maskedImageRef);
// returns new image with mask applied
return maskedImage;
}
コードを提供した後、参照用にコメントとしていくつかの番号を追加しました。まだ2つのオプションがあります。この全体は、どこかで呼び出すメソッドです。内部に画像を作成する必要はありません。これにより、メソッドの再利用性がゼロになります。
コードを機能させるため。メソッドのヘッド(1.)を
- (UIImage *)maskImageMyImages {
次に、2。の変数の名前を
UIImage *maskImage = [UIImage imageNamed:@"mask.png"];
このメソッドはマスクされた画像を返すので、どこかでこのメソッドを呼び出す必要があります。メソッドを呼び出すコードを教えていただけますか?