【问题标题】:Powershell with Image Magick Montage reading from text file带有从文本文件读取的 Image Magick Montage 的 Powershell
【发布时间】:2018-08-22 03:37:00
【问题描述】:

我正在使用 Image Magick 的蒙太奇函数编写 PowerShell 脚本。我的脚本一直有效,直到源文件 (.jpgs) 数量增加到不明确的文件数量。一旦有“太多”文件,脚本就会由于'Program 'montage.exe' failed to run: The filename or extension is too long' 而失败。 Image Magick 论坛(链接@底部)上建议让 PowerShell 从文本文档中读取,而不是使用“@”运算符来减少长度。

代码现在看起来像:

montage -verbose -label %t -pointsize 25 -background '#FFFFFF' -tile 24x5 -fill 'black' -define jpeg:size=600x780 -geometry 600x780+40+150 -quality 90 -auto-orient @E:\Output\contactSheetImages.txt E:\Contact_Sheet.jpg

我收到以下错误:

montage : montage.exe: unable to open image '@E:ÿþE': No such file or directory @ error/blob.c/OpenBlob/2695.

montage.exe: no decode delegate for this image format `' @ error/constitute.c/ReadImage/508.

montage.exe:  `E:\Contact_Sheet.jpg' @ error/montage.c/MontageImageCommand/1774.

我相当肯定使用“@”运算符可能会混淆脚本,但我对在 PowerShell 中使用“@”没有足够的了解来了解原因。

任何了解 ImageMagick 或只是更了解 PowerShell 的人都可以解释为什么这可能会破坏脚本吗?

我试过了:

  • @E:\Output\contactSheetImages.txt 替换为txt 文件中Get-Content 的变量
  • 在没有“@”运算符的情况下定位文本文档
  • @E:\Output\contactSheetImages.txt 周围使用单引号和双引号

Image Magick 论坛: https://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=34596

【问题讨论】:

  • 请注意,图像 '@E:ÿþE' 不是我的源目录中的图像,也没有在文本文档中的任何位置列出
  • @E:\Output\contactSheetImages.txt 上加上单引号或双引号是否有效。 ImageMagick @ 语法可能无法识别卷地址。我只是不确定,不要使用 Windows。
  • @fmw42 ,是的,我试过没有用。感谢您的建议!
  • 你可以试试montage ... @- OutputFile.jpg < E:\Output\contactSheetImages.txt 这样ImageMagick 只是从standard input 读取文件(即@-),Windows 不得不担心解析和发送@987654332 @到它的stdin
  • 你也可以反过来表达TYPE E:\Output\contactSheetImages.txt | montage ... @- result.jpg

标签: powershell imagemagick imagemagick-montage


【解决方案1】:

感谢大家的想法和帮助。虽然我无法使用提供的任何想法,但它让我想出了一个简单的解决方案。

我只是通过直接定位文件来消除读取文本文件的需要:

montage -verbose -label %t -pointsize 25 -background '#FFFFFF' -tile 24x5 -fill 'black' -define jpeg:size=600x780 -geometry 600x780+40+150 -quality 90 -auto-orient E:\Output\*.jpg E:\Contact_Sheet.jpg

虽然我希望解决问题而不是开发解决方法,但我的脚本现在可以工作了。

【讨论】:

    猜你喜欢
    • 2020-05-03
    • 2015-07-29
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多