如果应用程序的业务逻辑表明 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/