首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Photoshop脚本批处理操作,将3幅图像并排放置并保存为新图像

Photoshop脚本批处理操作,将3幅图像并排放置并保存为新图像
EN

Stack Overflow用户
提问于 2017-03-01 10:08:53
回答 1查看 443关注 0票数 1

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

代码语言:javascript
运行
复制
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
[...]

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

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

代码语言:javascript
运行
复制
[  FB  ]
[SW][SP]

但是,如果这不适用于Photoshop,或者如果它是一幅面向肖像画的图像,这是可以的:

代码语言:javascript
运行
复制
[FB][SW][SP]

它应该保存为一个新的图像,也许是这样的:

代码语言:javascript
运行
复制
Filename1-FINAL.jpg
Filename2-FINAL.jpg
[...]

我试着使用Photoshop的联系人表功能,但这是没有边界的景观和肖像图像的工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-01 13:06:00

如果您无法通过Photoshop脚本实现您想要的结果,您可以考虑使用ImageMagick,它安装在大多数Linux发行版上,可免费提供给macOS和macOS。

假设你的照片是这样的:

Filename1-FB.jpg

Filename1-SW.jpg

Filename1-SP.jpg

然后,只需将此命令输入终端(或Windows上的命令提示符):

代码语言:javascript
运行
复制
magick Filename1-FB.jpg -gravity center -background pink -extent 200x100% \
    \( Filename1-SW.jpg Filename1-SP.jpg +append \) -append result.jpg

希望您可以看到,+append并排附加图像,-append在上面和下面追加图像。另外,我选择了粉色来扩展画布,这样您就可以看到它在输出图像中的位置。

或者,如果你想把这三者连在一起,并排:

代码语言:javascript
运行
复制
magick Filename1-FB.jpg Filename1-SW.jpg Filename1-SP.jpg +append result.jpg

另外,您还可以看到,它只是一个行,可以放在一个循环中来执行当前目录中的所有图像。

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

代码语言:javascript
运行
复制
magick Filename1-FB.jpg -colorspace gray Filename1-SW.jpg
magick Filename1-FB.jpg -modulate 100,0,100 -sepia-tone 80% Filename1-SP.jpg

更多的笔记应该会有帮助..。

如果您想知道图像是景观还是肖像,可以这样做:

代码语言:javascript
运行
复制
magick image.jpg -format "%[fx:w>h?1:0]" info:

如果图像是景观,它将打印1,如果是肖像,则打印0

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

代码语言:javascript
运行
复制
magick identify -format "%w" Filename1-SW.jpg
400

并将%w更改为%h以表示高度。

您的Windows批处理循环可能如下所示--它不是我喜欢的脚本语言:

代码语言:javascript
运行
复制
@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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42528786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档