【发布时间】:2014-02-11 00:16:04
【问题描述】:
此代码将一张图片和一张灰度蒙版图片合并到一个 UIImage 中。它可以工作,但速度很慢。
+ (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *) mask
{
CGImageRef imageReference = image.CGImage;
CGImageRef maskReference = mask.CGImage;
CGImageRef imageMask = CGImageMaskCreate(CGImageGetWidth(maskReference),
CGImageGetHeight(maskReference),
CGImageGetBitsPerComponent(maskReference),
CGImageGetBitsPerPixel(maskReference),
CGImageGetBytesPerRow(maskReference),
CGImageGetDataProvider(maskReference),
NULL, // Decode is null
YES // Should interpolate
);
CGImageRef maskedReference = CGImageCreateWithMask(imageReference, imageMask);
CGImageRelease(imageMask);
UIImage *maskedImage = [UIImage imageWithCGImage:maskedReference];
CGImageRelease(maskedReference);
return maskedImage;
}
我认为 Accelerate Framework 可以提供帮助。但我不确定。 有vImage,它可以做alpha compositing。或者,也许我要寻找的是“vImage Transform”。不像 CATransform3D,而是“转换”图像。
但我需要的是根据蒙版将照片制作成透明的 JPEG。
可以为此使用 Accelerate Framework 吗?或者有其他选择吗?
【问题讨论】:
标签: ios iphone uiimage core-graphics accelerate-framework