通过 PowerShell 将图像和文件所有者拉取到 ImageMagick 'Montage'
Pull images and file owner through PowerShell to ImageMagick 'Montage'
我正在尝试构建一个 PowerShell 脚本,它将递归地从特定目录中提取 jpg,并通过 ImageMagick 运行 它们 montage
创建一个以文件名作为标签的联系人 Sheet .截至目前,我的 $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
}
使用此代码提取所有图像并且联系人 sheet 看起来正确,除了所有图像都标记相同 - 最后一张图像的名称。
一如既往,我们将不胜感激。
谢谢!
在 ImageMagick 中,使用 %f 以蒙太奇形式显示带后缀的文件名,或使用 %t 显示文件名(不带后缀)。 ImageMagick 应该去除路径。因此,创建一个变量 $filenames,其中包含具有不同 names.suffix(有或没有路径)的文件列表。
例如:
convert logo: /Users/fred/desktop/logo.png
获取filename.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/#label
我正在尝试构建一个 PowerShell 脚本,它将递归地从特定目录中提取 jpg,并通过 ImageMagick 运行 它们 montage
创建一个以文件名作为标签的联系人 Sheet .截至目前,我的 $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
}
使用此代码提取所有图像并且联系人 sheet 看起来正确,除了所有图像都标记相同 - 最后一张图像的名称。
一如既往,我们将不胜感激。
谢谢!
在 ImageMagick 中,使用 %f 以蒙太奇形式显示带后缀的文件名,或使用 %t 显示文件名(不带后缀)。 ImageMagick 应该去除路径。因此,创建一个变量 $filenames,其中包含具有不同 names.suffix(有或没有路径)的文件列表。
例如:
convert logo: /Users/fred/desktop/logo.png
获取filename.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/#label