gpt4 book ai didi

imagemagick - ImageMagick 转换中的样本/重采样/缩放/调整大小/自适应调整大小/缩略图运算符有什么区别?

转载 作者:行者123 更新时间:2023-12-03 05:09:49 28 4
gpt4 key购买 nike

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

-sample
-resample
-scale
-resize
-adaptive-resize
-thumbnail

那些有什么区别?

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

最佳答案

调整大小

-resize 400x300+20+30 (like the -scale and -sample examples below) converts an input to an output image which has the pixel dimensions of 400x300. It also shifts the output by 20 pixels to the right and by 30 pixels to the bottom. Additionally, there are a few more differences to -scale:


  • -resize确实支持 -filter 的附加设置(这应该在使用 -resize 之前出现在命令行上!)。
  • -filter确定在放大的情况下用于添加像素的颜色的确切算法,或者在缩小的情况下移除一些相邻像素时用于剩余像素的颜色。
  • 要获得支持的过滤器列表,只需运行 convert -list filter .
  • -filter point -resize 400x300创建与 -sample 400x300 完全相同的结果可以,但是运行速度还是慢了点。
  • 如果没有设置(之前)-resize ,转换将默认为 -filter Lanczos这速度较慢,但​​产生的质量比 -filter point 好得多(因为它考虑了所有新添加像素的所有周围像素的颜色)。产生(它使用最近邻规则来确定新添加像素的颜色)。

  • sample

    -sample 400x300 converts an input image to an output images which has the pixel dimensions of 400x300. However, there are a few very important differences to -resize:


  • -sample不支持 -filter 的附加设置;如果仍然设置,则 -filter被简单地忽略了。
  • 放大时(因为输入图像尺寸可能小于 400x300 ),像素以块为单位进行复制。
  • 缩小时(因为输入图像大小可能大于 400x300 ),像素使用非常简单的算法进行子采样:简单地跳过一些行和列。
  • -sample 的几何参数不支持任何偏移部分(与 -resize 不同,后者尊重输出的偏移指令)。
  • 输出永远不会有比输入图像更多(不同)的颜色;虽然它可能有更少的颜色。
  • 因此 -sample非常快(比 -resize 快)——但输出质量(通常)更差:你很容易变得极端 blockingaliasing对结果输出的影响。
  • -sample的一项重要功能新图像不会包含任何新颜色,尽管原始图像中的某些颜色可能会消失。

  • 重新采样

    -resample uses as parameter the desired XxY resolution, not not the XxY pixel geometry of the target image. The purpose of this operator is to preserve the rendered size of an image: Assume your image measures 4 inches by 3 inches on a device that renders it at 300 DPI. Then asking for a -resample 72 or -resample 72x72 will resize the image so that it measures (again) 4 inches by 3 inches on a 72 DPI device.


  • 此操作仅适用于已在其元数据中存储了所需分辨率的图像(并非所有图像格式都支持图像分辨率的概念——JPEG、PNG 和 TIFF 支持)。
  • 如果源图像的格式缺少对图像分辨率的内部支持,则必须通过 -density 指定图像的(假定)原始分辨率。在指定 -resample 之前的命令行上分辨率。

  • 规模

    -scale 400x300 produces the equivalent result (but is faster, because it avoids all the filter processing) as does using -filter box -resize 400x300. It also completely ignores any current -filter setting.


  • 缩小时,它通过将各个输入像素颜色平均在一起来替换像素颜色来简单地更改图像大小。
  • 放大时,它只是为所需的附加像素复制相应的输入像素。

  • 自适应调整大小

    -adaptive-resize 400x300 does not support (or does ignore, if set) the offset part of a geometry parameter and also ignores the -gravity setting if present.


  • 它默认使用 data-dependent triangulation调整大小时(除非通过额外指定 -filter [something] 来覆盖调整大小方法)。

  • 缩略图

    -thumbnail works just like -resize does, with a few differences:


  • 它针对速度进行了优化。
  • 它还删除任何嵌入的颜色配置文件以减少缩略图的文件大小。

  • 以下答案显示了 -resize 的一些(图示!)示例指令。每个插图都显示了不同的结果,具体取决于精确调整大小方法的“精细细节”:
  • ImageMagick crop command not giving perfect result
  • 关于imagemagick - ImageMagick 转换中的样本/重采样/缩放/调整大小/自适应调整大小/缩略图运算符有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8517304/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com