ios – 如何裁减UIImage,而不会失去它的规模财产?

ios – 如何裁减UIImage,而不会失去它的规模财产?,第1张

概述目标:裁减UI Image(以2.0的比例属性开始) 我执行以下代码: let croppedCGImage = originalUIImage.cgImage!.cropping(to: cropRect)let croppedUIImage = UIImage(cgImage: croppedCGImage!) 这段代码工作,但是结果,croppedUllmage,具有不正确的scale属性 目标:裁减UI Image(以2.0的比例属性开始)

我执行以下代码:

let croppedCGImage = originalUIImage.cgImage!.cropPing(to: cropRect)let croppedUIImage = UIImage(cgImage: croppedCGImage!)

这段代码工作,但是结果,croppedullmage,具有不正确的scale属性1.0.

创建最终图像时,我已经尝试指定了缩放比例:

let croppedUIImage = UIImage(cgImage: croppedCGImage!,scale: 2.0,orIEntation: .up)

这产生正确的比例,但是它将尺寸尺寸减半地不正确.

我该怎么办?

(*注意:UIImage上的scale属性很重要,因为我稍后用受尺度属性影响的UIImagePNGRepresentation(_ image:UIImage)保存图像)

编辑:

我得到以下工作.不幸的是,它比CGImage裁剪功能慢得多.

extension UIImage {    func cropPing(to rect: CGRect) -> UIImage {        UIGraphicsBeginImageContextWithOptions(rect.size,false,self.scale)        self.draw(in: CGRect(x: -rect.origin.x,y: -rect.origin.y,wIDth: self.size.wIDth,height: self.size.height))        let croppedImage = UIGraphicsGetimageFromCurrentimageContext()!        UIGraphicsEndImageContext()        return croppedImage    }}
解决方法 尝试这个:
extension UIImage {    func imageByCropToRect(rect:CGRect,scale:Bool) -> UIImage {        var rect = rect        var scaleFactor: CGfloat = 1.0        if scale  {            scaleFactor = self.scale            rect.origin.x *= scaleFactor            rect.origin.y *= scaleFactor            rect.size.wIDth *= scaleFactor            rect.size.height *= scaleFactor        }        var image: UIImage? = nil;        if rect.size.wIDth > 0 && rect.size.height > 0 {            let imageRef = self.cgImage!.cropPing(to: rect)            image = UIImage(cgImage: imageRef!,scale: scaleFactor,orIEntation: self.imageOrIEntation)        }        return image!    }}
总结

以上是内存溢出为你收集整理的ios – 如何裁减UIImage,而不会失去它的规模财产?全部内容,希望文章能够帮你解决ios – 如何裁减UIImage,而不会失去它的规模财产?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1113078.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存