如何使用 IrfanView 以相同的宽度和高度调整图像大小而不损失质量?

How to resize image with same width and height without quality loss using IrfanView?

我在批处理模式下使用 IrfanView 来调整图像大小。我想将所有图像的大小调整为 1840 像素的宽度,而不损失比例和质量。

例如,如果我有一张 1700 x 1700 像素的图像并将其调整为 1840 x 1840 像素,则没有问题。质量还可以。

但问题在于调整 1920 x 1200 像素的图像大小,因为高度远小于宽度。

执行的命令为:

"C:\IrfanView\i_view32.exe" "C:\photo\C0692B\*.jpg" /resize=(1840, 1840) /resample /convert="C:\photo\C0692B\test\*.jpg"

我因为身高而失去了品质。我不想调整高度,因为它低于想要的尺寸。

命令之前:
http://www.hostingpics.net/viewer.php?id=714806photo2.jpg
之后:
http://www.hostingpics.net/viewer.php?id=445086photo2.jpg

对于这个例子,我想将图像居中并添加空白以获得 1840 x 1840 像素的图像而不会造成质量损失。

如何操作?

IrfanView 的程序文件文件夹中的文本文件i_options.txt 列出并解释了 IrfanView 命令支持的所有选项行。

您似乎想将文件夹中的每个 JPEG 图像的大小调整为 1840 像素的宽度,同时保持横向格式图像的纵横比,即宽度高于(或等于)高度。

对于纵向格式的图片,最好将高度调整为 1840 像素,同时保持每张图片的纵横比。

有选项 /resize_long=x/aspectratio 用于此目的。

"C:\IrfanView\i_view32.exe" "C:\photo\C0692B\*.jpg" /resize_long=1840 /aspectratio /resample /convert="C:\photo\C0692B\test\*.jpg"

一张 1920 x 1200 像素的图像的纵横比为 1920 / 1200 = 1.6,因此调整后的图像具有 1840 x 1150 像素。

我不建议将每个高度或宽度太低的图像调整为 1840 x 1840 像素,以便在高度太低的图像的顶部和底部仅获得 "blank" 区域的方形图像或 "blank" 左侧和右侧区域宽度太小。

如果网络画廊需要 1840 x 1840 像素的图像,请从 DIVTD 元素,宽度和高度为 1840 像素,并定义图像在元素内水平和垂直居中显示。

但是,也可以将图像按比例调整为 1840 x 1840 像素,canvas 调整后的图像例如在 top/bottom 或 left/right 上根据宽度和使用高级批量转换模式的原始图像的高度。

我首先在 IrfanView 菜单 File 中点击菜单项 Batch Conversion/Rename.

然后我启用了使用高级选项(用于批量调整大小...) 并单击按钮 高级

我在打开的大对话框中做了以下操作window:

  • 选中调整大小:
  • 已选中将一侧或两侧设置为
  • 输入 1840 宽度
  • 输入 1840 身高
  • 已选择像素
  • 选中保持纵横比(比例)
  • 选中使用重采样功能(更好的质量)
  • 选中Canvas大小,点击按钮设置
    • 已选择 方法 2:设置总 canvas 像素尺寸
    • 输入 1840 宽度
    • 输入 1840 身高
    • 选中居中
    • Canvas选择了white颜色
  • 选中覆盖现有文件
  • 选中保存原始文件date/time
  • 将更改应用到所有页面(TIF/PDF 保存) 选中

未选中所有其他高级选项。

我设置的JPG选项

  • 保存质量:95%
  • 选中另存为渐进式 JPG
  • 选中保留原始 EXIF 数据(如果 JPG 为 JPG)
  • 选中保留原始 IPTC 数据
  • 选中保留原始 JPG-评论
  • 选中保留原始 XMP 数据
  • 选中尝试以原始 JPG 质量(估计)保存
  • 重置 EXIF 方向标签选中

未选中所有其他 JPG 选项。

所有这些设置都写入 i_view32.ini 并且可以从命令行与 /advancedbatch 一起使用。

我决定找出所有这些选项是如何保存在 IrfanView 的 INI 文件中的,以便能够编写一个批处理文件,在文件夹中动态创建 i_view32.ini批量图像转换任务的临时文件。这具有独立于默认使用 i_view32.ini 当前包含的设置的优势。

批号:

@echo off
(
    echo [Batch]
    echo AdvCanvas=1
    echo AdvResample=1
    echo AdvResize=1
    echo AdvResizeRatio=1
    echo AdvResizeH=1840.00
    echo AdvResizeW=1840.00
    echo AdvSaveOldDate=1
    echo AdvOverwrite=1
    echo UseAdvanced=1
    echo UseResample=1
    echo\
    echo [Effects]
    echo CanvMethod=1
    echo CanvInside=1
    echo CanvW=1840
    echo CanvH=1840
    echo CanvCorner=4
    echo CanvColor=16777215
    echo\
    echo [JPEG]
    echo KeepCom=1
    echo KeepExif=1
    echo KeepIptc=1
    echo KeepQuality=1
    echo KeepXmp=1
    echo Save Progressive=1
    echo Save Quality=95
) >"%Temp%\i_view32.ini"

"C:\IrfanView\i_view32.exe" "C:\photo\C0692B\*.jpg" /ini="%Temp%" /advancedbatch /convert="C:\photo\C0692B\test\*.jpg"

del "%Temp%\i_view32.ini"