问题描述
我有一个从CIImage加载的UIImage:
I have a UIImage which is loaded from a CIImage with:
tempImage = [UIImage imageWithCIImage:ciImage];
问题是我需要将 tempImage
裁剪为特定的 CGRect
,我知道如何做到这一点的唯一方法是使用 CGImage
。
问题是在iOS 6.0文档中我发现了这个:
The problem is I need to crop tempImage
to a specific CGRect
and the only way I know how to do this is by using CGImage
. The problem is that in the iOS 6.0 documentation I found this:
CGImage
如果使用CIImage对象初始化UIImage对象,则该属性的值为NULL。
A。如何转换CIImage至CGImage?
我正在使用此代码,但我有内存泄漏(并且无法理解在哪里):
A. How to convert from CIImage to CGImage? I'm using this code but I have a memory leak (and can't understand where):
+(UIImage*)UIImageFromCIImage:(CIImage*)ciImage {
CGSize size = ciImage.extent.size;
UIGraphicsBeginImageContext(size);
CGRect rect;
rect.origin = CGPointZero;
rect.size = size;
UIImage *remImage = [UIImage imageWithCIImage:ciImage];
[remImage drawInRect:rect];
UIImage *result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
remImage = nil;
ciImage = nil;
//
return result;
}
推荐答案
查看 CIContext
CGImageRef img = [myContext createCGImage:ciImage fromRect:[ciImage extent]];
从回答类似问题:
此外,因为你有 CIImage
首先,您可以使用 CIFilter
来实际裁剪图像。
Also since you have a CIImage
to begin with, you could use CIFilter
to actually crop your image.
这篇关于从CIImage获取CGImage的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!