CIIMage上的CGAffineTransform和UIImageView之间的区别

时间:2018-11-25 19:17:59

标签: swift uiimageview core-image cgaffinetransform ciimage

我一直在玩CGAffineTransform,并且注意到从UIImageView转换图像的效果与直接通过CIImage转换图像的效果不同。这是代码:

let totalTransformationAndRotation = CGAffineTransform(rotationAngle: x)
// How I transform using the imageview
self.keyImage.transform = totalTransformationAndRotation
// How I transform using the image
var coreImage:CIImage? = myImage!.ciImage
if coreImage == nil {
   coreImage = CIImage(cgImage: myImage!.cgImage!)
}
coreImage = coreImage?.transformed(by: totalTransformationAndRotation)   

当单独使用时,这两种转换完全不同。我知道CIImage的变换的dx和dy以及UIImageView的变换的dx和dy的单位是不同的,但是即使旋转也有不同的结果。在我看来,当在CIImage中旋转时。旋转以左下角为中心,而在UIImageView中则以图像的中心为中心。

是否可以旋转,缩放和平移UIImage / CIImage,并具有与在UIImageView上应用相同的转换一样的效果?

编辑: 我正在尝试通过旋转,缩放和平移来变换UIImage。通过在UIImageView的transform属性上应用变换,已经获得了预期的效果,但是意识到我需要直接在图像中进行变换。

0 个答案:

没有答案