image-processing - 如何根据文件大小限制确定png尺寸?

标签 image-processing compression png

如果应用程序的业务逻辑表明 24 位 PNG 永远不能超过 250KB,是否有可能预测图像的最大宽度和高度是多少,并且仍然符合 250KB 的要求?

由于颜色深度、alpha channel 等有很多变量......是否有可能知道这一点?或者更接近?

最佳答案

这是可能的,但它可能没有用。 PNG 的 zlib 压缩最大压缩比为 1032:1(对于相同字节值的长序列)。因此,250 KB 压缩将是(忽略包装和诸如此类)大约 250 MB 未压缩。对于方形图像,每像素 3 个字节,这几乎是 10,000 x 10,000 像素。

请注意,此处的另一个答案莫名其妙地假设最小压缩,即提供最小数量的像素,例如500 x 333。由于问题要求“图像的最大宽度和高度”,因此该答案没有用。显然 10,000 x 10,000 大于 500 x 333。

更新:

基于最小 PNG 文件的精确计算导致最大 24 位像素数(压缩数据中存储的每个像素三个字节)作为文件大小的函数 n字节:

floor(((n - 77) * 8 - 1) / 2) * 86 + 1

所以对于 250*1024 = 256,000 字节,我们得到 88,037,427 个像素。对于方形图像,大约为 9383 x 9383 像素。

关于image-processing - 如何根据文件大小限制确定png尺寸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11035715/

相关文章:

python - 如何在 python 中更改图像捕获日期?

php - 从数据库加载图像,跨服务器结果不一致

c# - 如何编写面部变形器应用程序?

javascript - 使网页背景的一部分变亮

android - 由于图像,应用程序体积较大。如何压缩 .PNG 图片?

image-processing - 检测图像中的圆的算法

java - 字节数组操作

python - 如何在不在 python 中提取 gz 文件的情况下列出它的内容?

bash - 使用 shell 脚本解压缩 .lzo 文件

python - 使用 Python 将元数据添加到图像上传到 S3