gpt4 book ai didi

powershell - ImageMagick 裁剪文件名中的行/列仅保存最后一张图像

转载 作者:行者123 更新时间:2023-12-01 00:45:51 25 4
gpt4 key购买 nike

我正在尝试使用 ImageMagick 和 PowerShell 裁剪图像。我可以使用以下命令裁剪图像,并创建 2000 多个图像:

convert -crop 16x16 .\original.png tileOut%d.png

但是,我想利用 ImageMagick 动态设置文件名的能力。

根据 a post on their forums我应该能够通过批处理文件运行以下内容:
convert ^
bigimage.jpg ^
-crop 256x256 ^
-set filename:tile "%%[fx:page.x/256+1]_%%[fx:page.y/256+1]" ^
+repage +adjoin ^
tiled_%%[filename:tile].gif

我不需要逃离 %因为我直接在 PowerShell 中运行它,所以我使用了以下内容:
convert -crop 16x16 .\original.png -set filename:tile "%[fx:page.x/16+1]_%[fx:page.y/16+1]" +repage +adjoin directory\tiled_%[filename:tile].png

但是,当我运行此命令时,我最终会得到一个名为 的文件。平铺_%[文件名另一个叫 tiled_45_47.png .

所以虽然它似乎创建了最后一个文件,但它只创建了一个。根据文件的属性,第一个文件的大小为 0 字节,但占用了超过 8 MB 的磁盘空间。

尝试在批处理文件中运行命令会导致相同的行为,这让我认为 PowerShell 本身不是问题,而是命令。

根据文档 +adjoin是必需的,因为我想要不同的图像。 +repage对我来说没有多大意义,但自从原始拥有它以来,我一直将它保留在命令中,并且排除它似乎不会改变输出。 -set filename看起来很简单。

第一个的大尺寸让我相信所有以前的图像可能会被添加到其中。但是,文件名也表明它已挂断 : ,但它在 PowerShell 中似乎不是特殊字符。它还为最后一次裁剪创建了一个图像。莫名其妙。

那么我做错了什么?

提前致谢!

编辑:
  • PowerShell 5.0.10586.0,在 Windows 10 上。
  • ImageMagick 6.9.2 Q16(64 位)

  • 从评论中,我认为问题可能出在 ImageMagick 命令上。

    最佳答案

    我没有使用 Powershell,但我认为通过先指定图像,然后是裁剪,然后设置文件名,您会取得更大的成功:

    convert original.png -crop 16x16 -set filename:tile "%[fx:page.x/16+1]_%[fx:page.y/16+1]" +repage "tiled_%[filename:tile].png"

    关于powershell - ImageMagick 裁剪文件名中的行/列仅保存最后一张图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34472873/

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