Как перевернуть UIImage горизонтально с помощью Swift?
Решение выполнить сброс UIImage осуществляется с помощью кода Objective-C:
[UIImage imageWithCGImage:img.CGImage scale:1.0 orientation: UIImageOrientationDownMirrored]
Однако, изображениеWithCGImage недоступно в Swift! Есть ли решение для горизонтального перемещения изображения с помощью Swift? Спасибо!
Ответы
Ответ 1
Большинство методов factory преобразуются в инициализаторы в swift. Когда это возможно, даже если метод класса все еще доступен, они являются предпочтительными. Вы можете использовать:
init(CGImage cgImage: CGImage!, scale: CGFloat, orientation: UIImageOrientation)
Использование будет выглядеть так:
var image = UIImage(CGImage: img.CGImage, scale: 1.0, orientation: .DownMirrored)
Ответ 2
В Swift.... (6.3.1)
YourUIImage.transform = CGAffineTransformMakeScale(-1, 1)
Это также работает с UIView
Ответ 3
Изменение параметра ориентации изображения фактически не переворачивает изображение во всех случаях. Изображение должно быть перерисовано каким-то образом... Например, например:
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
Swift 4
YOURIMAGEVIEW.transform = CGAffineTransform(scaleX: -1, y: 1)
Ответ 5
UIImage имеет метод горизонтального отображения изображения. Он вызывает imageFlippedForRightToLeftLayoutDirection
. Этот метод используется для отображения изображения для ориентации справа налево. Более подробную информацию вы можете проверить здесь Apple Doc
С быстрым 3 это будет выглядеть так:
let flippedImage = img.imageFlippedForRightToLeftLayoutDirection()