gpt4 book ai didi

swift - 将方向应用于 CGContext

转载 作者:行者123 更新时间:2023-11-30 14:17:02 25 4
gpt4 key购买 nike

我正在使用以下代码缩小UIImage:

let image = UIImage(contentsOfFile: imageUrl.path!)!.CGImage

let width = Float(CGImageGetWidth(image)) / 1.01
let height = Float(CGImageGetHeight(image)) / 1.01
let bitsPerComponent = CGImageGetBitsPerComponent(image)
let bytesPerRow = CGImageGetBytesPerRow(image)
let colorSpace = CGImageGetColorSpace(image)
let bitmapInfo = CGImageGetBitmapInfo(image)

let context = CGBitmapContextCreate(nil, Int(width), Int(height), bitsPerComponent, bytesPerRow, colorSpace, bitmapInfo)
CGContextSetInterpolationQuality(context, kCGInterpolationHigh)

CGContextDrawImage(context, CGRect(origin: CGPointZero, size: CGSize(width: CGFloat(width), height: CGFloat(height))), image)

let scaledImage = UIImage(CGImage: CGBitmapContextCreateImage(context))

它用于照片扩展。它可以工作,缩放输入图像,但不考虑方向。编辑开始时我保持方向:

func startContentEditingWithInput(contentEditingInput: PHContentEditingInput?, placeholderImage: UIImage) {

let output = PHContentEditingOutput(contentEditingInput: self.input)
let url = self.input?.fullSizeImageURL
if let imageUrl = url {
imageOrientation = input!.fullSizeImageOrientation
}

}

保存的输出始终是横向的。

最佳答案

最简单的解决方案是在创建 UIImage 输出时重新使用 UIImage 输入中的图像方向。

let uiImage = UIImage(contentsOfFile: imageUrl.path!)
let image = uiImage!.CGImage
// ...
let scaledImage = UIImage(CGImage: CGBitmapContextCreateImage(context),
scale: uiImage.scale,
orientation: uiImage.imageOrientation)

关于swift - 将方向应用于 CGContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31024938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com