您好我正在尝试压缩UIImage我的代码是这样的:
var data = UIImageJPEGRepresentation(image, 1.0)
print("Old image size is \(data?.length) bytes")
data = UIImageJPEGRepresentation(image, 0.7)
print("New image size is \(data?.length) bytes")
let optimizedImage = UIImage(data: data!, scale: 1.0)
打印出来是:
Old image size is Optional(5951798) bytes
New image size is Optional(1416792) bytes
稍后在应用程序中,我将UIImage上传到网络服务器(它首先转换为NSData)。当我检查大小时,它是原始的5951798字节。我在这里做错了什么?
答案 0 :(得分:2)
UIImage
提供图像的位图(未压缩)版本,可用于将图像渲染到屏幕。可以通过降低图像的质量(有效的颜色方差)来压缩图像的JPEG数据,但这仅在JPEG数据中。将压缩的JPEG解压缩到UIImage
后,再次需要完整的位图大小(基于颜色格式和图像尺寸)。
基本上,在上传之前,请保持最佳质量的图像以便显示和压缩。
答案 1 :(得分:0)
将此数据发送到服务器 data = UIImageJPEGRepresentation(image,0.7),而不是将 optimizedimage 发送到服务器。
您已将图像压缩为数据。所以它将重复过程(重置为原始大小)。