在缩放之前确定图像文件大小

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% 就足够了。

【讨论】:

以上是关于在缩放之前确定图像文件大小的主要内容,如果未能解决你的问题,请参考以下文章

在使用 PHP 上传到临时目录之前检查图像的文件大小

在上传之前调整图像文件的大小;我们可以覆盖临时文件并上传吗?

如何在 R 中下载之前确定在线文件大小?

无论如何要在上传之前确定文件大小?

确定占位符的大小以匹配图像的实际大小

在不重新采样图像层的情况下缩放扫描的 PDF