我可以更改 travel.state.gov(护照照片工具)上的 JPEG 图像的压缩比吗?

我可以更改 travel.state.gov(护照照片工具)上的 JPEG 图像的压缩比吗?

travel.state.gov 的照片编辑器,我得到

图片压缩过度。请使用小于 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);

因此在定义中eimagetimageNumBytes。这是假设原始图像是每像素 3 个字节(真彩色)。

function getCompressionRatio(image, imageNumBytes) {
    return 3 * image.naturalWidth * image.naturalHeight / imageNumBytes
}

我们的选择

  1. 编辑 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
    

    那么条件就永远不会触发,您也不会收到该错误。

  2. 编辑图像:为了使图像获得较低的“压缩比”,您只需降低分子或通过放大(图像尺寸)( 3 * image.naturalWidth * image.naturalHeight )来提高分母。imageNumBytes

答案2

Evan Carroll 我很遗憾,这些人都是书呆子,急于证明自己有多聪明。而且实际上什么也没做来回答你的问题,真可悲。

我收到了同样的消息。以下是我修复它的方法:

  1. 打开 MS Paint
  2. 单击调整大小
  3. 点击像素
  4. 增加像素数。我从 600 增加到 800,然后再次尝试上传,效果非常好。祝你好运!

相关内容