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
设置(如果存在)
- 它在调整大小时默认使用(除非通过另外指定
覆盖了resize方法)-filter[something]
-thumbnail
的工作原理与-resize
的工作原理相同,但有一些区别:
- 它针对速度进行了优化
- 它还会删除任何嵌入的颜色配置文件,以减小缩略图的文件大小
下面的答案显示了
-resize
指令的几个(插图!)示例。每个插图显示不同的结果,具体取决于精确调整大小方法的“细节”: