Photoshop脚本批处理操作并排放置3张图像并另存为新图像

时间:2017-03-01 10:08:53

标签: image photoshop photoshop-script

我在文件夹中有很多图片。他们的名字是这样的:

Filename1-FB.jpg <- coloured version of image 1
Filename1-SW.jpg <- black/white version of image 1
Filename1-SP.jpg <- sepia version of image 1
Filename2-FB.jpg <- coloured version of image 2
Filename2-SW.jpg <- black/white version of image 2
Filename2-SP.jpg <- sepia version of image 2
[...]

我希望将每个图像的这三个版本合并/合并为一个图像。

完美(至少对于风景图像)是这样的:

[  FB  ]
[SW][SP]

但是,如果这不适用于Photoshop,或者如果它是一个面向人像的图像,那就可以了:

[FB][SW][SP]

它应该保存为新图像,可能是这样的:

Filename1-FINAL.jpg
Filename2-FINAL.jpg
[...]

我尝试使用Photoshop的联系表功能,但如果没有横向和纵向图像的边框,则无法使用。

1 个答案:

答案 0 :(得分:0)

如果您无法通过Photoshop脚本实现所需目标,则可以考虑使用大多数Linux发行版上安装的 ImageMagick ,并且可以免费使用macOS和Windows。

让我们说你的图片是这样的:

FILENAME1-FB.jpg

enter image description here

FILENAME1-SW.jpg

enter image description here

FILENAME1-SP.jpg

enter image description here

然后您只需在终端(或Windows上的命令提示符)中键入此命令:

magick Filename1-FB.jpg -gravity center -background pink -extent 200x100% \
    \( Filename1-SW.jpg Filename1-SP.jpg +append \) -append result.jpg

enter image description here

希望您可以看到+append并排添加图片,-append在上方和下方附加图片。此外,我只选择粉红色来扩展画布,以便您可以看到它在输出图像中的位置。

或者,如果你想要连续三个并排:

magick Filename1-FB.jpg Filename1-SW.jpg Filename1-SP.jpg +append result.jpg

enter image description here

另外,你可以看到它只是一个单行程序,可以放在一个循环中来完成当前目录中的所有图像。

另请注意,ImageMagick可以从彩色图像中自动为您制作黑白和棕褐色版本:

magick Filename1-FB.jpg -colorspace gray Filename1-SW.jpg
magick Filename1-FB.jpg -modulate 100,0,100 -sepia-tone 80% Filename1-SP.jpg

一些应该有帮助的笔记......

如果您想知道图像是横向还是纵向,可以执行以下操作:

magick image.jpg -format "%[fx:w>h?1:0]" info:

如果图片是横向图片,则会打印1,如果图片是纵向图片,则会打印0

如果要获取图像的宽度,请使用:

magick identify -format "%w" Filename1-SW.jpg
400

并将%w更改为%h的高度。

您的Windows BATCH循环可能看起来像这样 - 它不是我首选的脚本语言:

@ECHO OFF
REM Loop through all colour pictures
FOR /F %%f IN ( 'DIR /B *-FB.JPG' ) DO CALL :PROCESS %%f
GOTO :EOF

:PROCESS
   ECHO Processing file %1...

   SET this=%1
   SET core=%this:~0,-6%
   SET SW=%core%SW.jpg
   SET SP=%core%SP.jpg
   SET result=%core%FINAL.jpg

   REM Check if SW exists and create if not
   IF NOT exist %SW% magick %this% -colorspace gray %SW%

   REM Check if SP exists and create if not
   IF NOT exist %SP% magick %this% -modulate 100,0,100 -sepia-tone 80% %SP%

   REM Determine if image is landscape or portrait...
   REM Get width and height first
   FOR /F %%I IN ('magick %this% -format %%w info:') do set W=%%I
   FOR /F %%I IN ('magick %this% -format %%h info:') do set H=%%I
   IF %W% GTR %H% (
      magick %this% -resize 200x200% ( %SW% %SP% +append ) -append %result%
   ) ELSE (
      magick %this% %SW% %SP% +append %result%
   )
GOTO :EOF