在缩放之前确定图像文件大小
Posted
技术标签:
【中文标题】在缩放之前确定图像文件大小【英文标题】:Determining Image Filesize Before Scaling 【发布时间】:2017-04-06 20:02:14 【问题描述】:ios 邮件应用程序曾经有一个方便的功能(我相信随着 Mail Drop 的出现他们将其删除),它可以让您选择图像附件的缩放版本。这个功能的伟大之处在于它实际上会计算每个缩放图像的文件大小;如下图:
我上传图片到的服务器有一个小的文件大小限制 (10 MB),我想模拟这个功能以防止上传超过这个限制。
假设图像实际上没有按比例缩小三倍,以确定每个缩放图像的文件大小;我该怎么做呢?
我无法找到有关某种公式的任何信息,以根据原始图像的大小计算缩小图像的文件大小。
【问题讨论】:
作为位图?是的,它是W * H * bytes_per_pixel
.... 压缩格式(png、jpg)唯一的方法是进行缩放
@Selvin 而bytes_per_pixel
取决于位图的配置,对吗? (即ARGB_8888
)但是压缩后的格式应该比那个计算小很多,不是吗?
【参考方案1】:
鉴于我在旧设备上弹出该对话框时总是看到延迟,这是一个不平凡的延迟,我挑战你的假设,即 Apple 不只是在这里做肮脏的行为 - 即。将这些 JPG 直接写入内存/磁盘并读取大小,而不是计算这个......即。 let data = UIImageJPEGRepresentation(image, 0.6)!
其中的诀窍很可能是,人们会认为“它需要至少 80% 的质量才能成为真实的!”洞。仅当您拥有糟糕的 JPG/媒体库时,这才是正确的。实际上,如果您将相当复杂的 UIImage 写入内存/磁盘并且不需要透明度,那么 60% 就足够了。
【讨论】:
以上是关于在缩放之前确定图像文件大小的主要内容,如果未能解决你的问题,请参考以下文章