图片压缩过度。请使用小于 20:1 的压缩率
有没有办法在应用程序中通过这个屏幕,给出一个 jpg 文件?我可以在 gimp 中打开它,并降低压缩率,但质量不会更好吗?
答案1
tldr:在 Chrome 中打开开发者控制台(++ Ctrl)并运行,ShiftJ
MAX_COMPRESSION_RATIO = Infinity
我们可以设计两种方法来做到这一点(1)通过编辑图像,或(2)通过编辑 JavaScript 代码。
怎么运行的
查看代码,你可以看到它是如何根据定义计算出来的
function getCompressionRatio(e, t) {
return 3 * e.naturalWidth * e.naturalHeight / t
}
并且呼叫站点,
var e = getCompressionRatio(image, imageNumBytes);
因此在定义中e
是image
且t
是imageNumBytes
。这是假设原始图像是每像素 3 个字节(真彩色)。
function getCompressionRatio(image, imageNumBytes) {
return 3 * image.naturalWidth * image.naturalHeight / imageNumBytes
}
我们的选择
编辑 JavaScript 代码:或者,此错误在此处呈现,
if (MAX_COMPRESSION_RATIO < e) setUI(UIModeEnum.INIT), setMessageDialog("Your photo has been rejected for the following reason(s):", [{ description: "Image is overly compressed. Please use a compression ratio that is less than 20:1" }]), showControls(!0, ["divMessages"]);
在 Chrome 中,你可以打开开发者控制台 ( Ctrl++ ) 并运行ShiftJ,
MAX_COMPRESSION_RATIO = Infinity
那么条件就永远不会触发,您也不会收到该错误。
编辑图像:为了使图像获得较低的“压缩比”,您只需降低分子或通过放大(图像尺寸)
( 3 * image.naturalWidth * image.naturalHeight )
来提高分母。imageNumBytes
答案2
Evan Carroll 我很遗憾,这些人都是书呆子,急于证明自己有多聪明。而且实际上什么也没做来回答你的问题,真可悲。
我收到了同样的消息。以下是我修复它的方法:
- 打开 MS Paint
- 单击调整大小
- 点击像素
- 增加像素数。我从 600 增加到 800,然后再次尝试上传,效果非常好。祝你好运!