在我的应用程序中,我使用YPImagepicker从库和相机中选择图像。我想知道选择图片或捕获照片后的图像大小(MB)。任务是将图像转换为数据并通过REST API发送到后端。截至目前,我们将图像限制为5。因此,我想看到每个图像的大小,如果超过1 MB,需要压缩为1MB。
let imgData = NSData(data: image.jpegData(compressionQuality: 1)!)
var imageSize: Int = imgData.count
print("actual size of image in KB: %f ", Double(imageSize) / 1024.0 / 1024.0)
上面的例子我已经用来检查图像的大小,但我没有看到正确的文件大小。例如,我通过应用程序捕捉一张照片,它被保存在相册中,当我检查图像大小它显示3.4 MB的照片细节,但在代码中我没有得到相同的大小。什么是最好的方式来实现这一点?
1条答案
按热度按时间sqyvllje1#
Apple不使用JPEG在iOS图库中存储图像,而是使用一种专有的有损压缩文件格式。
这两种文件格式将产生不同的文件大小。
从用户的图像库加载图像并将其转换为JPEG数据时,将使用JPEG压缩并使用您指定的图像质量值对其进行重新压缩。
compressionQuality
值为1.0时,将创建图像质量最佳但文件大小最大的图像文件。这就是您的结果比用户图像库中的文件大的原因。请尝试使用较低的compressionQuality
值。