带有Image Magick Montage的Powershell从文本文件读取

时间:2018-08-20 19:01:07

标签: powershell imagemagick imagemagick-montage

我正在使用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有更深入理解的任何人都可以解释为什么这可能会破坏脚本吗?

我尝试过:

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

尽管我本来想解决问题而不是解决问题,但我的脚本现在可以正常工作了。