gpt4 book ai didi

objective-c - 在iOS中,如何将网页图像转换为质量较差的图像?

转载 作者:行者123 更新时间:2023-11-30 13:48:50 25 4
gpt4 key购买 nike

该应用程序从网络下载图像并在表格 View 中以缩略图形式显示它们。然而,这些图像的质量“太好了”。它们是高清质量的,如果表格 View 中有太多图像,可能会稍微减慢 UI 速度。

在将图像设置到单元格之前,如何使其“质量较低”? (占用更少的内存并且需要更少的处理能力来显示它们)

我尝试过这样的事情:

let smallerImage = UIImage(CGImage: image.CGImage!, scale: 0.2, orientation: image.imageOrientation)

但它没有按预期工作。正确的做法是什么?

最佳答案

这是我在 Swift 时代之前的一个旧项目中的工作代码。额外的参数 maxLength 传递要使用的最大高度和宽度(对于纵向,它是最大高度,对于横向,它是最大宽度)。希望您知道如何从 Ojbective-C 转换为 Swift:

- (UIImage *) scaleImage: (UIImage *) image toMax: (float) maxLength
{
//scale down image to fit withing square of maxLength x maxLength
CGSize size = image.size;
printf("scaleImage source size: %f, %f\n", size.width, size.height);
float scaleX = size.width / maxLength;
float scaleY = size.height / maxLength;
float scale = scaleX > scaleY ? scaleX : scaleY;
int newWidth = round(size.width / scale);
int newHeight = round(size.height / scale);
CGSize newSize = CGSizeMake(size.width / scale, size.height / scale);
printf("scaleImage new size: %d, %d\n", newWidth, newHeight);
UIGraphicsBeginImageContext( newSize );// a CGSize that has the size you want
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
//image is the original UIImage
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}

应用这种缩放确实限制了缩略图消耗的总内存。

关于objective-c - 在iOS中,如何将网页图像转换为质量较差的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34574010/

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