1

所以我正在使用这个功能保存两张照片

let leftMirroredImage = UIImage(cgImage: myImage.cgImage!, scale: myImage.scale, orientation: UIImageOrientation.leftMirrored)

UIImageWriteToSavedPhotosAlbum(myImage, nil, nil, nil)
UIImageWriteToSavedPhotosAlbum(leftMirroredImage, nil, nil, nil) . 

但由于某种原因,leftMirroredImage当我在照片应用程序中查看它时,它被切断了。像这样在此处输入图像描述

这是保存的正常图像在此处输入图像描述

我还注意到照片会像这样被切断.upMirrored , .downMirrored, and .rightMirrored。知道为什么会这样吗?

4

1 回答 1

1

您可以使用 CIFilter "CIAffineTransform" 并将图像 x 比例乘以 -1 以水平翻转图像:

let image = UIImage(data: try! Data(contentsOf: URL(string:"https://i.stack.imgur.com/Xs4RX.jpg")!))!
let transform = CGAffineTransform(scaleX: -1, y: 1)
if let ciimage = CIImage(image: image),
    let flipped = CIFilter(name: "CIAffineTransform", withInputParameters: [kCIInputImageKey: ciimage, kCIInputTransformKey: NSValue(cgAffineTransform: transform)])?.outputImage {
    let image = UIImage(ciImage: flipped)
    UIGraphicsBeginImageContextWithOptions(image.size, false, image.scale)
    image.draw(in: CGRect(origin: .zero, size: image.size))
    let flippedUIImage =  UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
}
于 2017-05-18T21:38:37.397 回答