我有一個背景UIImage,我想用自定義形狀裁剪背景UIImage,所以這個背景圖像只通過自定義形狀「出現」。例如,我有一個月亮形的自定義形狀,我希望背景圖像只能通過月亮形狀的部分。通過自定義形狀裁剪UIImage
基於另一種答案,我試圖強加掩模圖像上,像這樣:
- (UIImage *)createImageFromImage:(UIImage *)image
withMaskImage:(UIImage *)mask {
CGImageRef imageRef = image.CGImage;
CGImageRef maskRef = mask.CGImage;
CGImageRef imageMask = CGImageMaskCreate(CGImageGetWidth(maskRef),
CGImageGetHeight(maskRef),
CGImageGetBitsPerComponent(maskRef),
CGImageGetBitsPerPixel(maskRef),
CGImageGetBytesPerRow(maskRef),
CGImageGetDataProvider(maskRef),
NULL,
YES);
CGImageRef maskedReference = CGImageCreateWithMask(imageRef, imageMask);
CGImageRelease(imageMask);
UIImage *maskedImage = [UIImage imageWithCGImage:maskedReference];
CGImageRelease(maskedReference);
return maskedImage;
}
- 我的月亮是100 * 100,這已拉伸做一個奇怪的比例
- 我的目標是隻有圖像來通過月球 - 但是,此刻月亮是一個白色的形狀,圖像
任何關於如何解決作物問題的想法將不勝感激。謝謝!
您可以將此庫用於任何自定義形狀。只需繪製您的路徑,即可獲得裁剪後的圖像。 https://www.cocoacontrols.com/controls/mdimagecroper –