核心图像:使用CICrop后,应用合成filter不排队
我正在使用CICrop通过切断图像的顶部和底部来裁剪图像到一定的大小。
之后,我应用CIMultiplyCompositing滤镜之类的东西,将裁剪的图像与其他图像组合在一起。
两幅图像的大小相同,但结果显示两幅图像没有alignment。
所以,我检查了以下内容:
NSLog(@"image after crop: %g, %g, %g, %g", imageToFilter.extent.origin.x, imageToFilter.extent.origin.y, imageToFilter.extent.size.width, imageToFilter.extent.size.height); NSLog(@"second image: %g, %g, %g, %g", secondImage.extent.origin.x, secondImage.extent.origin.y, secondImage.extent.size.width, secondImage.extent.size.height);
这显示裁剪图像的origin.y有我看到的偏移量(使用CICrop的结果):
image after crop: 0, 136, 3264, 2176 second image: 0, 0, 3264, 2176
那么,有没有办法让我重置裁剪图像“范围”rect,以使origin.y为零? 检查CIImage的文档,“extent”是一个只读属性。
或者我将不得不做一些非常低效的转换到另一个图像types/原始数据,然后返回到CIImage?
感谢您的任何build议。
我想出了这个答案…这是一个容易的。 我只需要在裁剪之后在CIImage上应用“翻译”转换,如下所示:
imageToFilter = [imageToFilter imageByApplyingTransform:CGAffineTransformMakeTranslation(0, -imageToFilter.extent.origin.y)];
这有效地将其y原点回到0。