UIImageフリッピングを行うソリューションは、Objective-Cコードを使用することです。
[UIImage imageWithCGImage:img.CGImage scale:1.0 orientation: UIImageOrientationDownMirrored]
ただし、imageWithCGImageはSwiftでは使用できません! Swiftで画像を水平方向に反転させるソリューションはありますか?ありがとう!
ほとんどのファクトリメソッドは、Swiftで初期化子に変換されます。使用可能な場合は常に、クラスメソッドがまだ使用可能な場合でも優先されます。次を使用できます。
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
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
}
私にとって最も簡単な方法は、次のようにUIImage
の.withHorizontallyFlippedOrientation()
インスタンスメソッドを使用することでした。
let flippedImage = straightImage.withHorizontallyFlippedOrientation()
シンプルなワンライナーはいつも私を幸せにします:)
Swift 4
YOURIMAGEVIEW.transform = CGAffineTransform(scaleX: -1, y: 1)