标题: [文件操作] 有个批处理imagemagick的需求,不知道有会做的朋友吗? [打印本页]
作者: schubert 时间: 2021-10-28 15:45 标题: 有个批处理imagemagick的需求,不知道有会做的朋友吗?
本帖最后由 schubert 于 2021-10-28 15:47 编辑
有偿服务,
需要一批图片批量加相框,然后缩放到背景图,背景图使用图片的主色调。
作者: Batcher 时间: 2021-10-28 17:41
回复 1# schubert
你说的加相框是这个效果吗:- @echo off
- set "SrcFolder=C:\Users\Administrator\Desktop\1"
- set "DstFolder=C:\Users\Administrator\Desktop\2"
- set "convert=convert.exe"
- if not exist "%DstFolder%" (
- md "%DstFolder%"
- )
- if not exist "%SrcFolder%" (
- echo 找不到待处理的图片文件夹
- pause
- goto :eof
- )
- for /f "delims=" %%i in ('dir /b /a-d "%SrcFolder%\*.jpg"') do (
- echo 正在处理图片:%%i
- "%convert%" "%SrcFolder%\%%i" -bordercolor "#ddddff" -border 25x25 "%DstFolder%\%%i"
- )
- pause
复制代码
作者: schubert 时间: 2021-10-29 20:48
回复 2# Batcher
是已经加相框,但需要有带相框阴影,另外生成背景的那种。
作者: schubert 时间: 2021-10-29 20:55
回复 2# Batcher
或者直接加相框阴影,背景设置透明,另外用png格式保存,不知道convert.exe是否能实现背景透明的png文件保存
作者: Batcher 时间: 2021-10-29 22:11
回复 4# schubert
1楼的需求描述里面没有提到阴影效果,你试试这样:- @echo off
- set "SrcFolder=C:\Users\Administrator\Desktop\1"
- set "DstFolder=C:\Users\Administrator\Desktop\2"
- set "montage=montage.exe"
- if not exist "%DstFolder%" (
- md "%DstFolder%"
- )
- if not exist "%SrcFolder%" (
- echo 找不到待处理的图片文件夹
- pause
- goto :eof
- )
- for /f "delims=" %%i in ('dir /b /a-d "%SrcFolder%\*.jpg"') do (
- echo 正在处理图片:%%i
- "%montage%" "%SrcFolder%\%%i" -shadow -geometry +20+20 -background none -resize x500 -bordercolor black -border 15x15 "%DstFolder%\%%~ni.png"
- )
- pause
复制代码
作者: schubert 时间: 2021-10-30 09:56
回复 5# Batcher
不知道是否可以处理文件夹下面的所有子文件夹和文件,并保存在指定的新的文件夹中,按照原文件夹结构
另外产生了一个错误,不过好像又不妨碍新图片的产生。
就是下面这个
正在处理图片:0009.jpg
montage.exe: UnableToOpenConfigureFile `magic.xml' @ warning/configure.c/GetConfigureOptions/714.
montage.exe: UnableToOpenConfigureFile `colors.xml' @ warning/configure.c/GetConfigureOptions/714.
montage.exe: UnableToOpenConfigureFile `type.xml' @ warning/configure.c/GetConfigureOptions/714.
正在处理图片:0010.jpg
montage.exe: UnableToOpenConfigureFile `magic.xml' @ warning/configure.c/GetConfigureOptions/714.
montage.exe: UnableToOpenConfigureFile `colors.xml' @ warning/configure.c/GetConfigureOptions/714.
montage.exe: UnableToOpenConfigureFile `type.xml' @ warning/configure.c/GetConfigureOptions/714.
作者: Batcher 时间: 2021-10-30 14:59
回复 6# schubert
imagemagick安装好了之后会有好几个xml文件你把它们跟montage.exe放在一起就不会有这些报错了
作者: schubert 时间: 2021-11-2 10:38
回复 7# Batcher
可以让他处理文件夹下的所有文件和子文件夹么?
作者: Batcher 时间: 2021-11-2 12:14
回复 8# schubert - @echo off
- setlocal enabledelayedexpansion
- REM 处理该文件夹下(包括子文件夹)的图片
- set "SrcFolder=C:\Users\Administrator\Desktop\1"
- REM 指定处理之后的图片放到哪个文件夹
- set "DstFolder=C:\Users\Administrator\Desktop\2"
- set "montage=montage.exe"
- if not exist "%DstFolder%" (
- md "%DstFolder%"
- )
- if not exist "%SrcFolder%" (
- echo 找不到待处理的图片文件夹
- pause
- goto :eof
- )
- for /f "delims=" %%i in ('dir /b /s /a-d "%SrcFolder%\*.jpg"') do (
- echo 正在处理图片:%%i
- set "SrcFull=%%i"
- set "DstSub=%DstFolder%!SrcFull:%SrcFolder%=!"
- for %%j in ("!DstSub!") do (
- if not exist "%%~dpj" (
- md "%%~dpj"
- )
- "%montage%" "%%i" -shadow -geometry +20+20 -background none -resize x500 -bordercolor black -border 15x15 "%%~dpj%%~ni.png"
- )
- )
- pause
复制代码
作者: schubert 时间: 2021-11-2 12:26
回复 9# Batcher
非常感谢,已经可以使用了,
我再研究研究怎么让阴影明显点,感觉投影阴影稍微浅了点
作者: Batcher 时间: 2021-11-2 18:07
回复 1# schubert
背景图使用图片的主色调- @echo off
- setlocal enabledelayedexpansion
- REM 处理该文件夹下(包括子文件夹)的图片
- set "SrcFolder=C:\Users\Administrator\Desktop\1"
- REM 指定处理之后的图片放到哪个文件夹
- set "DstFolder=C:\Users\Administrator\Desktop\2"
- REM 根据自己电脑实际情况设置ImageMagick的路径
- set "path=C:\Program Files\ImageMagick;%path%"
-
- if not exist "%DstFolder%" (
- md "%DstFolder%"
- )
- if not exist "%SrcFolder%" (
- echo 找不到待处理的图片文件夹
- pause
- goto :eof
- )
- for /f "delims=" %%i in ('dir /b /s /a-d "%SrcFolder%\*.jpg"') do (
- echo 正在处理图片:%%i
- set "MeanRGB="
- for /f "tokens=2" %%a in ('identify.exe -verbose "%%i" ^| find "mean:"') do (
- set "MeanRGB=!MeanRGB! %%a"
- )
- for /f "tokens=1-3" %%a in ("!MeanRGB!") do (
- set "MeanRGB=%%a,%%b,%%c"
- )
- echo rgb^(!MeanRGB!^)
- set "SrcFull=%%i"
- set "DstSub=%DstFolder%!SrcFull:%SrcFolder%=!"
- for %%j in ("!DstSub!") do (
- if not exist "%%~dpj" (
- md "%%~dpj"
- )
- montage.exe "%%i" -shadow -geometry +20+20 -background rgb^(!MeanRGB!^) -resize x500 -bordercolor black -border 15x15 "%%~dpj%%~ni.png"
- )
- )
- pause
复制代码
作者: schubert 时间: 2021-11-22 16:05
回复 11# Batcher
给力!!!
作者: schubert 时间: 2021-12-31 15:23
回复 11# Batcher
可以让最后的效果图长宽比1:1么
作者: schubert 时间: 2021-12-31 16:41
回复 11# Batcher
还有个想改进下的,就是想把图片统一放到同一个背景下应该怎么定义呢?
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |