ImageMagick convert中的采样/重采样/缩放/调整大小/自适应调整大小/缩略图操作符有什么区别?

ImageMagick convert中的采样/重采样/缩放/调整大小/自适应调整大小/缩略图操作符有什么区别?,imagemagick,thumbnails,Imagemagick,Thumbnails,我找到了多种使用convert更改图像分辨率的方法: -sample -resample -scale -resize -adaptive-resize -thumbnail 这些有什么区别 如果我需要制作具有固定纵横比的各种大小的大图片缩略图(需要裁剪)——我的最佳选择是什么?调整大小 -resize 400x300+20+30(如下面的-scale和-sample示例)将输入转换为像素尺寸为400x300的输出图像。它还将输出向右移动20个像素,向下移动30个像素。此外,-scale还有一

我找到了多种使用
convert
更改图像分辨率的方法:

-sample
-resample
-scale
-resize
-adaptive-resize
-thumbnail
这些有什么区别


如果我需要制作具有固定纵横比的各种大小的大图片缩略图(需要裁剪)——我的最佳选择是什么?

调整大小

-resize 400x300+20+30
(如下面的
-scale
-sample
示例)将输入转换为像素尺寸为
400x300
的输出图像。它还将输出向右移动20个像素,向下移动30个像素。此外,
-scale
还有一些不同之处:

  • -resize
    不支持额外的设置
    -filter
    (在使用
    -resize
    !)之前,应该在命令行上进行设置)

  • -filter
    确定放大时用于添加像素颜色的精确算法,或缩小时移除部分相邻像素时用于剩余像素颜色的精确算法

  • 要查看支持的筛选器列表,只需运行
    convert-list-filter

  • -filter point-resize 400x300
    创建的结果与
    -sample 400x300
    创建的结果完全相同,但运行速度仍然稍慢

  • 如果没有(在)
    -调整大小
    之前)设置,转换将默认默认为
    -过滤Lanczos
    ,该转换速度较慢,但生成的质量比
    -过滤点
    生成的质量好得多(因为它考虑了所有新添加像素周围的颜色)(使用最近邻规则确定新添加像素的颜色)

样本

-示例400x300
将输入图像转换为像素尺寸为
400x300
的输出图像。但是,调整大小有几个非常重要的区别:

  • -sample
    不支持
    -filter
    的附加设置;如果仍然设置,则只需忽略
    -filter

  • 放大时(因为输入图像大小可能小于
    400x300
    ),像素以块的形式复制

  • 缩小时(因为输入图像大小可能大于
    400x300
    ),使用非常简单的算法对像素进行亚采样:一些行和列被简单跳过

  • -sample
    的几何参数不支持任何偏移零件(不同于
    -resize
    ,后者尊重输出的偏移指令)

  • 输出永远不会比输入图像拥有更多(不同)的颜色;但它可能拥有更少的颜色

  • 因此,
    -sample
    的速度非常快(比
    -resize
    快),但输出质量(通常)更差:您很容易在结果输出中获得极端效果

  • -sample
    的一个重要特性是,新图像将不包含任何新颜色,尽管原始图像中的一些颜色可能会消失

重新采样

-重采样
使用所需的
XxY
分辨率作为参数,而不是目标图像的
XxY
像素几何体。此操作符的目的是保留图像的渲染大小:假设您的图像在渲染设备上的尺寸为4英寸×3英寸以300 DPI的速度扫描。然后要求使用
-resample 72
-resample 72x72
将调整图像大小,以便在72 DPI设备上(再次)测量4英寸x 3英寸

  • 此操作仅适用于元数据中已存储了所需分辨率的图像(并非所有图像格式都支持图像分辨率的概念——JPEG、PNG和TIFF do)

  • 如果源图像的格式缺少对图像分辨率的内部支持,则在指定
    -resample
    分辨率之前,必须通过命令行上的
    -density
    指定图像的(假定)原始分辨率

比例

-scale 400x300
产生与使用
-filter box-resize 400x300
相同的结果(但更快,因为它避免了所有筛选处理)。它还完全忽略任何当前的
-filter
设置

  • 缩小时,它只需通过将各个输入像素颜色平均化来替换像素颜色,即可更改图像大小

  • 放大时,它只是复制相应的输入像素以获得所需的额外像素

自适应调整大小

-adaptive resize 400x300
不支持(或忽略,如果设置)几何参数的偏移部分,也忽略
-gravity
设置(如果存在)

  • 它在调整大小时默认使用(除非通过另外指定
    -filter[something]
    覆盖了resize方法)
缩略图

-thumbnail
的工作原理与
-resize
的工作原理相同,但有一些区别:

  • 它针对速度进行了优化

  • 它还会删除任何嵌入的颜色配置文件,以减小缩略图的文件大小


下面的答案显示了
-resize
指令的几个(插图!)示例。每个插图显示不同的结果,具体取决于精确调整大小方法的“细节”:

这个