Photoshop 脚本批处理操作并排放置 3 个图像并另存为新图像
Photoshop script batch action to place 3 images side by side and save as new image
我的一个文件夹里有很多图片。他们的名字是这样的:
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
[...]
我想将每张图片的这三个版本 combined/merged 合并到一张图片中。
完美(至少对于风景图像而言)是这样的:
[ FB ]
[SW][SP]
但是,如果这不适用于 Photoshop,或者如果它是纵向图像,则没问题:
[FB][SW][SP]
应该另存为新图片,大概是这样的:
Filename1-FINAL.jpg
Filename2-FINAL.jpg
[...]
我尝试使用 Photoshop 的接触 sheet 功能,但这对横向和纵向图像没有边框不起作用。
如果您无法通过 Photoshop 脚本实现您想要的效果,您可以考虑使用 ImageMagick,它安装在大多数 Linux 发行版上,可用于 macOS 和Windows 免费。
假设您的图像是这样的:
文件名1-FB.jpg
文件名1-SW.jpg
文件名1-SP.jpg
然后您只需在终端(或 Windows 上的命令提示符)中键入此命令:
magick Filename1-FB.jpg -gravity center -background pink -extent 200x100% \
\( Filename1-SW.jpg Filename1-SP.jpg +append \) -append result.jpg
希望您能看到 +append
并排附加图像,-append
将图像附加在上方和下方。另外,我只是选择粉红色来扩展 canvas,这样您就可以看到它在输出图像中出现的位置。
或者,如果您希望所有三个并排并排:
magick Filename1-FB.jpg Filename1-SW.jpg Filename1-SP.jpg +append result.jpg
另外,你可以看到它只是一个单行代码,可以放在一个循环中来处理当前目录中的所有图像。
另请注意,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
我的一个文件夹里有很多图片。他们的名字是这样的:
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
[...]
我想将每张图片的这三个版本 combined/merged 合并到一张图片中。
完美(至少对于风景图像而言)是这样的:
[ FB ]
[SW][SP]
但是,如果这不适用于 Photoshop,或者如果它是纵向图像,则没问题:
[FB][SW][SP]
应该另存为新图片,大概是这样的:
Filename1-FINAL.jpg
Filename2-FINAL.jpg
[...]
我尝试使用 Photoshop 的接触 sheet 功能,但这对横向和纵向图像没有边框不起作用。
如果您无法通过 Photoshop 脚本实现您想要的效果,您可以考虑使用 ImageMagick,它安装在大多数 Linux 发行版上,可用于 macOS 和Windows 免费。
假设您的图像是这样的:
文件名1-FB.jpg
文件名1-SW.jpg
文件名1-SP.jpg
然后您只需在终端(或 Windows 上的命令提示符)中键入此命令:
magick Filename1-FB.jpg -gravity center -background pink -extent 200x100% \
\( Filename1-SW.jpg Filename1-SP.jpg +append \) -append result.jpg
希望您能看到 +append
并排附加图像,-append
将图像附加在上方和下方。另外,我只是选择粉红色来扩展 canvas,这样您就可以看到它在输出图像中出现的位置。
或者,如果您希望所有三个并排并排:
magick Filename1-FB.jpg Filename1-SW.jpg Filename1-SP.jpg +append result.jpg
另外,你可以看到它只是一个单行代码,可以放在一个循环中来处理当前目录中的所有图像。
另请注意,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