gpt4 book ai didi

ios - 将 UIImage 设置为 UIImageView 以节省内存时是否需要调整 UIImage 的大小?

转载 作者:行者123 更新时间:2023-11-28 16:15:22 25 4
gpt4 key购买 nike

当将 UIImage 设置为 UIImageView 时,我知道 iOS 会自动缩放图像以使其适合 ImageView。但是,如果我加载一个非常大的图像文件作为 UIImage,iOS 是否会自动减小 UIImage 的大小(从而节省内存)直到它足够了以适合 ImageView?还是我必须自己实现图像的修剪?

如果需要,我该如何调整 UIImage 的大小?

最佳答案

图片的大小是可选的,设置与不设置都不节省内存。图片会被设置到UIImage View 的frame size中。此函数将调整图像大小。

func ResizeImageToRequired(image: UIImage, targetSize: CGSize) -> UIImage {
let size = image.size

let widthRatio = targetSize.width / image.size.width
let heightRatio = targetSize.height / image.size.height

// Figure out what our orientation is, and use that to form the rectangle
var newSize: CGSize
if(widthRatio > heightRatio) {
newSize = CGSizeMake(size.width * heightRatio, size.height * heightRatio)
} else {
newSize = CGSizeMake(size.width * widthRatio, size.height * widthRatio)
}

// This is the rect that we've calculated out and this is what is actually used below
let rect = CGRectMake(0, 0, newSize.width, newSize.height)

// Actually do the resizing to the rect using the ImageContext stuff
UIGraphicsBeginImageContextWithOptions(newSize, false, 1.0)
image.drawInRect(rect)
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()

return newImage
}

这里可以使用上面的函数,在CGFloat中设置大小为需要的宽高。

 self.ResizeImageToRequired(UIImage(named: "yourImageName")!, targetSize:      CGSizeMake("width", "height"))

关于ios - 将 UIImage 设置为 UIImageView 以节省内存时是否需要调整 UIImage 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39146744/

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