如何水平翻转UIImage与Swift?
做UIImage翻转的解决scheme是Objective-C代码:
[UIImage imageWithCGImage:img.CGImage scale:1.0 orientation: UIImageOrientationDownMirrored]
但是,imageWithCGImage在Swift中不可用! 有没有解决scheme水平翻转图像与斯威夫特? 谢谢!
大多数工厂方法都是快速转换为初始化器。 只要可用,即使类方法仍然可用,他们是首选。 您可以使用:
init(CGImage cgImage: CGImage!, scale: CGFloat, orientation: UIImageOrientation)
用法如下所示:
var image = UIImage(CGImage: img.CGImage, scale: 1.0, orientation: .DownMirrored)
在Swift中……(6.3.1)
YourUIImage.transform = CGAffineTransformMakeScale(-1, 1)
这也适用于UIView
在所有情况下,改变图像方向参数实际上并不是在翻转图像。 图像必须重新绘制…例如像这样:
Swift 3
func flipImageLeftRight(_ image: UIImage) -> UIImage? { UIGraphicsBeginImageContextWithOptions(image.size, false, image.scale) let context = UIGraphicsGetCurrentContext()! context.translateBy(x: image.size.width, y: image.size.height) context.scaleBy(x: -image.scale, y: -image.scale) context.draw(image.cgImage!, in: CGRect(origin:CGPoint.zero, size: image.size)) let newImage = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() return newImage }
斯威夫特4
YOURIMAGEVIEW.transform = CGAffineTransform(scaleX: -1, y: 1)
UIImage有水平翻转图像的方法。 它调用imageFlippedForRightToLeftLayoutDirection
。 此方法用于从右向左方向翻转图像。 更多细节你可以在这里检查苹果文件
随着迅速3它看起来像:
let flippedImage = img.imageFlippedForRightToLeftLayoutDirection()