iOS アプリケーションの 1 つで、 を使用して画像の一部を切り取ろうとしていCGImageMask
ます。次のコードで画像をマスキングすることに成功しました。
- (UIImage *)maskImage:(UIImage *)referenceImage 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 masked = CGImageCreateWithMask([referenceImage CGImage], mask);
return [UIImage imageWithCGImage:masked];
}
したがって、私のイメージは次のようになります。
myImageView.image = [self maskImage:[UIImage imageNamed:@"image.png"]
withMask:[UIImage imageNamed:@"mask.png"]];
問題: 出力画像は参照画像 ('image.png') と同じサイズで、周囲に透明な領域があります。しかし、これらの透明な領域を避けて、結果の画像をトリミングしたいと思います。どうすればこれを達成できますか?いくつかのマスクがあり、マスク フレームはすべてに似ているわけではありません。ここに問題の概要の参考画像を添付します。友達を助けてください。前もって感謝します。