gpt4 book ai didi

image - 如何使用 ImageMagick 的 convert 命令链接图像转换?

转载 作者:行者123 更新时间:2023-12-04 17:57:03 25 4
gpt4 key购买 nike

我有一个原始图像(例如 1600x1200),我想为其创建一系列具有各种分辨率的缩略图:

  • 900x0(即表示图像按比例缩放为 900 像素宽)
  • 700x0
  • 0x550(即表示图像按比例缩放到 550 像素高)
  • 0x400
  • 0x150
  • 200x200(即裁剪和居中)

  • 单独地,我可以使用 convert 处理这些转换中的每一个。命令。问题是不断地重新初始化 convert是一种巨大的资源浪费。 ;最好将事物链接起来,以便 convert可以重用它的工作。

    使用 ImageMagick 6.7.0-10 我尝试了以下操作(使用 +write 选项,参见 http://www.imagemagick.org/script/command-line-options.php#write),但它不能像 +write 一样工作命令似乎无法将图像恢复到其原始状态:
    convert '/tmp/original.jpg'[0] -quality 95 -density 72x72 -resample 72x72 +profile '!xmp,*'\
    -resize '900>' +write '/tmp/900.jpg'\
    -resize '700>' +write '/tmp/700.jpg'\
    -resize '200x' -crop '200x200+0+35' +repage +write '/tmp/200.jpg' \
    -resize 'x550>' +write '/tmp/550.jpg'\
    -resize 'x400>' +write '/tmp/400.jpg'\
    -resize 'x150>' '/tmp/150.jpg'\

    * readability purposes 的行尾反斜杠

    或者,我尝试了以下操作(使用 +clone-delete )。它似乎有效,但可能会更有效(也许使用 mpr:http://www.imagemagick.org/Usage/files/#mpr ):

    convert 'original.jpg'[0] -quality 95 -density 72x72 -resample 72x72 +profile '!xmp,*' \
    \(+clone -resize 'x150>' -write '150.jpg' \) \
    -delete 1 \(+clone -resize 'x400>' -write '400.jpg' \) \
    -delete 1 \(+clone -resize 'x550>' -write '550.jpg' \) \
    -delete 1 \(+clone -resize '200x' -crop '200x200+0+35' +repage -write '200.jpg' \) \
    -delete 1 \(+clone -resize '700>' -write '700.jpg' \) -delete 1 -resize '900>' '900.jpg' \

    谁能解释我在第一个例子中做错了什么(使用 +write 命令)?另外,任何人都可以提出任何改进建议以提高 CPU/内存效率吗?

    回复

    我还是很好奇为什么 +write不起作用。

    最佳答案

    事实证明,使用 mpr:是要走的路(从我在论坛上看到的等等):

    convert 'original.jpg'[0] -quality 95 -density 72x72 -resample 72x72 +profile '!xmp,*' \
    -write mpr:orig +delete \
    mpr:orig -resize 'x150>' -write '150.jpg' +delete \
    mpr:orig -resize 'x400>' -write '400.jpg' +delete \
    mpr:orig -resize 'x550>' -write '550.jpg' +delete \
    mpr:orig -resize '200x' -crop '200x200+0+35' +repage -write '200.jpg' +delete \
    mpr:orig -resize '700>' -write '700.jpg' +delete \
    mpr:orig -resize '900>' '900.jpg' +delete

    注意:以防万一您错过了,您不需要 -write命令链中的最后一个图像。

    另请注意:对正在输出的文件使用扩展名很重要。如果省略, convert不知道在编写它们时应该使用哪种格式(大概是因为将图像存储在 mpr: 中会破坏该信息)。

    关于image - 如何使用 ImageMagick 的 convert 命令链接图像转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6584922/

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