如何使用IrfanView调整具有相同宽度和高度的图像,而不会丢失质量?

时间:2017-09-09 21:52:57

标签: batch-file 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像素的图像而没有质量损失。

怎么做?

1 个答案:

答案 0 :(得分:1)

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像素,以仅获得高度太低或“空白”的图像顶部和底部带有“空白”区域的方形图像左侧和右侧的区域,宽度太小。

如果1840 x 1840像素的网络图库需要图像,请参考宽度和高度为1840像素的 DIV TD 元素中的每个图像并定义图像在元素内水平和垂直居中显示。

但是,也可以使用高级图像将图像调整为1840 x 1840像素,调整大小后的图像,例如使用高级批量转换模式,根据原始图像的宽度和高度,在顶部/底部或左/右边使用白色边框。

我首先在菜单项批量转换/重命名菜单文件中的 IrfanView 内点击。

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

我在打开的大对话框窗口中进行了跟踪:

  • 选中调整大小:
  • 选择将一侧或两侧设为
  • 宽度
  • 输入1840
  • 高度
  • 输入1840
  • 选择像素
  • 选中保留纵横比(比例)
  • 选中使用重新采样功能(质量更好)
  • 选中画布尺寸,点击按钮设置
    • 选择方法2:以像素为单位设置总画布尺寸
    • 宽度
    • 输入1840
    • 高度
    • 输入1840
    • 选择中心
    • 画布颜色
    • 选择white颜色
  • 选中覆盖现有文件
  • 选中使用原始日期/时间保存文件
  • 将更改应用于所有页面(保存TIF / PDF)选中

不会检查所有其他高级选项。

我设置的 JPG选项

  • 节省质量: 95%
  • 选中另存为渐进式JPG
  • 选中保留原始EXIF数据(如果JPG为JPG)
  • 选中保留原始IPTC数据
  • 选中保留原始JPG-Comment
  • 选中保留原始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"