Lim*_*ean 32 flip uiimage ios swift
进行UIImage翻转的解决方案是使用Objective-C代码:
[UIImage imageWithCGImage:img.CGImage scale:1.0 orientation: UIImageOrientationDownMirrored]
Run Code Online (Sandbox Code Playgroud)
但是,在Swift中没有imageWithCGImage!是否有使用Swift水平翻转图像的解决方案?谢谢!
dre*_*wag 28
大多数工厂方法都在swift中转换为初始化程序.只要可用,即使类方法仍然可用,它们也是首选.您可以使用:
init(CGImage cgImage: CGImage!, scale: CGFloat, orientation: UIImageOrientation)
Run Code Online (Sandbox Code Playgroud)
用法如下所示:
var image = UIImage(CGImage: img.CGImage, scale: 1.0, orientation: .DownMirrored)
Run Code Online (Sandbox Code Playgroud)
duy*_*yen 26
在斯威夫特....(6.3.1)
YourUIImage.transform = CGAffineTransformMakeScale(-1, 1)
Run Code Online (Sandbox Code Playgroud)
这也适用于UIView
Ale*_*bin 18
在所有情况下,更改图像方向参数实际上并不会翻转图像.必须以某种方式重绘图像...例如:
斯威夫特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
}
Run Code Online (Sandbox Code Playgroud)
Fra*_*.M. 14
对我来说最简单的方法是使用如下的.withHorizontallyFlippedOrientation()实例方法UIImage:
let flippedImage = straightImage.withHorizontallyFlippedOrientation()
简单的单行总是让我开心:)
斯威夫特4
YOURIMAGEVIEW.transform = CGAffineTransform(scaleX: -1, y: 1)
Run Code Online (Sandbox Code Playgroud)
这是实际翻转图像的最简单解决方案
extension UIImage {
func flipHorizontally() -> UIImage? {
UIGraphicsBeginImageContextWithOptions(self.size, false, self.scale)
let context = UIGraphicsGetCurrentContext()!
context.translateBy(x: self.size.width/2, y: self.size.height/2)
context.scaleBy(x: -1.0, y: 1.0)
context.translateBy(x: -self.size.width/2, y: -self.size.height/2)
self.draw(in: CGRect(x: 0, y: 0, width: self.size.width, height: self.size.height))
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage
}
}
Run Code Online (Sandbox Code Playgroud)
要使用此解决方案,您可以执行以下操作
let image = UIImage(named: "image.png")!
let newImage = image.flipHorizontally()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32527 次 |
| 最近记录: |