从UIImage转换转换为CIImage转换

时间:2014-06-05 09:56:22

标签: ios objective-c core-image

我有一种用手势(缩放,旋转和平移)转换图像的方法。手势会修改应用于图像视图的CGAffineTransform。这很有效。

self.imageView.transform = transform;

现在我想使用CoreImage(出于各种原因):

CIImage *outputCIImage = [self.ciImage imageByApplyingTransform:transform];
CGImageRef cgImage = [self.context createCGImage:outputCIImage fromRect:self.imageView.bounds];
self.imageView.image = [UIImage imageWithCGImage:cgImage];

然而,由于CoreImage具有不同的坐标系,因此手势在Y轴上翻转:

  • 缩放仍然有效
  • 左右摇摄仍有效
  • 翻转上下翻转
  • 旋转相反。

根据this post的建议,我可以通过应用此修正来修复手势以使其全部正常工作:

enter image description here

CGAffineTransform flipYTransform = CGAffineTransformMake(1, 0, 0, -1, 0, self.view.bounds.size.height);
transform = CGAffineTransformConcat(transform, flipYTransform);

enter image description here

然而整个图像都被翻转了。如何将转换从UIImage转换为CoreImage?

0 个答案:

没有答案