为今天这么多问题道歉,星期五死脑症状设定。
我有一个CICrop过滤器:
[crop setValue:beginImage forKey:@"inputImage"]; //give the crop filter the beginImage
[crop setValue:[CIVector vectorWithX:0.0f Y:0.0f Z:_exportSize W:_exportSize] forKey:@"inputRectangle"]; //give the filter the size to crop to
croppedImage = [crop valueForKey:@"outputImage"]; //set the output image, note it's still a CIImage at this point
可悲的是,它没有用。它裁剪的图像最终为0x0像素。 _exportSize的快速NSLog(它是一个CGFloat)显示它是1024,但是日志显示图像后期裁剪为0x0。我无法理解为什么。
此代码之前有效。我认为,唯一的区别是我曾经用UIImage裁剪没有CIImages。我宁愿不必转换,因为我计划在裁剪之后做其他CoreImage。
正如我所说,_exportSize是一个CGFloat _exportSize;并记录它显示它1024.0000。
有什么想法吗?
干杯。
答案 0 :(得分:2)
最后,我放弃了Core Image进行裁剪,而是使用了它:
-(UIImage *)imageByCropping:(UIImage *)imageToCrop toRect:(CGRect)rect
{
CGImageRef imageRef = CGImageCreateWithImageInRect([imageToCrop CGImage], rect);
UIImage *cropped = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
return cropped;
}
答案 1 :(得分:0)
试试
[crop setValue:[CIVector vectorWithX:0.0f Y:0.0f Z:_exportSize.width W:_exportSize.height] forKey:@"inputRectangle"];
而不是
[crop setValue:[CIVector vectorWithX:0.0f Y:0.0f Z:_exportSize W:_exportSize] forKey:@"inputRectangle"];
帮助网址http://gigliwood.com/weblog/Cocoa/Core_Image,_part_2.html
Z应该是宽度
W应该是高度
希望它有所帮助。