【发布时间】:2016-10-05 05:29:59
【问题描述】:
我有一个背景 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,这个比例拉长了很奇怪
- 我的目标只是让图像穿过月球 - 然而,此刻月亮是一个白色的形状,正从图像上方飞过
任何关于如何解决作物问题的想法都将不胜感激。谢谢!
【问题讨论】:
-
您可以将此库用于任何自定义形状。只需画出你的路径,你就会得到裁剪的图像。 cocoacontrols.com/controls/mdimagecroper
标签: ios objective-c uiimage