我一直在玩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属性上应用变换,已经获得了预期的效果,但是意识到我需要直接在图像中进行变换。