Извлечение изображений и владельца файла через PowerShell в ImageMagick 'Montage'
Я пытаюсь создать сценарий PowerShell, который будет рекурсивно извлекать jpgs из определенных каталогов и запускать их через ImageMagick. montage
создать лист контактов с именами файлов в качестве меток. На данный момент мой $filename
код поврежден, так как он предоставляет только имя последнего файла и метки для всех изображений с одинаковым именем файла.
В настоящее время у меня есть:
foreach ($dailyPhotoBay in $dailyServerPath)
{
$dailyImage = Get-ChildItem -Path $dailyPhotoBay -Include *.jpg -Recurse | Where-Object {$_.PSParentPath -like "*Output*"}
foreach ($image in $dailyImage)
{
$fileName = [System.IO.Path]::GetFileNameWithoutExtension($dailyImage)
}
echo $fileName
montage -verbose -label $fileName -pointsize 20 -background '#FFFFFF' -tile '5x40' -fill 'black' -define jpeg:size=600x780 -geometry 600x780+40+150 -quality 90 -auto-orient $dailyImage.FullName D:\Contact_Sheet\Sheet.jpg
}
С помощью этого кода все изображения вытягиваются и контактный лист выглядит правильно, за исключением того, что все изображения помечены одинаково - название самого последнего изображения.
Как всегда, любая помощь приветствуется.
Спасибо!
1 ответ
В ImageMagick используйте%f, чтобы показать имя файла с суффиксом в монтаже, или%t, чтобы показать имя файла (без суффикса). ImageMagick должен раздеть пути. Поэтому создайте переменную $filenames, которая содержит список файлов с разными names.suffix с или без путей.
Например:
convert logo: /Users/fred/desktop/logo.png
Чтобы получить имя файла.suffx:
montage -label "%f" /Users/fred/desktop/logo.png montage1.png
Или получить только имя файла без суффикса
montage -label "%t" /Users/fred/desktop/logo.png montage2.png
Поэтому для вашего монтажа сделайте следующее, если вы хотите, чтобы имя файла с суффиксом отображалось:
montage -verbose -label "%f" -pointsize 20 -background '#FFFFFF' -tile '5x40' -fill 'black' -define jpeg:size=600x780 -geometry 600x780+40+150 -quality 90 -auto-orient $dailyImage D:\Contact_Sheet\Sheet.jpg
или сделайте следующее, если вы хотите имя файла без суффикса:
montage -verbose -label "%t" -pointsize 20 -background '#FFFFFF' -tile '5x40' -fill 'black' -define jpeg:size=600x780 -geometry 600x780+40+150 -quality 90 -auto-orient $dailyImage D:\Contact_Sheet\Sheet.jpg
Извините, я не знаю PowerShell. Поэтому я не могу сказать вам, как получить список имен файлов из вашего каталога.
См. http://www.imagemagick.org/script/escape.php http://www.imagemagick.org/Usage/montage/