use*_*229 3 imagemagick batch-file
我想要做的是使用ImageMagick在图像上创建边框.这是一个简单的过程,我可以使用硬编码值手动完成,但我希望它是聪明的.它需要做的是,能够简单地定义你想要边框的图像,然后脚本运行,获取图像的尺寸,然后调整我对这些尺寸的边框图像的大小,并拍打顶部的边界.
要做到这一点,从我的基本理解,我将必须将图像的宽度和高度存储为变量.我得到的最接近(实际得到的信息)是
identify "image.png"
Run Code Online (Sandbox Code Playgroud)
吐出我需要的信息,但是我需要将宽度/高度存储到变量中以便在以后的过程中使用它们.我在https://superuser.com/questions/323970/how-can-i-get-the-image-dimensions-of-a-targa-file-through-a-batch-script中找到了以下代码
(注意:我的.bat文件名为"imagecheck.bat"
identify -format "imagecheck2.bat %w %h" image.png > temp.bat
temp.bat
Run Code Online (Sandbox Code Playgroud)
从该代码的海报所说的,它将从image.png获得宽度和高度(%w和%h),然后将其存储在imagecheck2.bat中作为我可以作为%1(对于%w)访问的变量和%2(%h)
所以,有了这个说,在imagecheck2.bat里面,我有
@echo off
echo The parameters were: %1 and %2
pause
Run Code Online (Sandbox Code Playgroud)
它打印出来
The parameters were: and
Run Code Online (Sandbox Code Playgroud)
这应该是一件简单的事情; 我缺少什么想法?提前致谢.
ret*_*roj 10
这是一种可以在不使用任何辅助文件的情况下完成此操作的方法.
for /f "tokens=1-2" %%i in ('identify -ping -format "%%w %%h" logo:') do set W=%%i & set H=%%j
echo width: %W%
echo height: %H%
Run Code Online (Sandbox Code Playgroud)
将"logo:"替换为图像的文件名.
也就是说,我强烈建议不要使用MS Batch,因为程序越复杂,代码就越荒谬.
顺便说一句,-ping
在该识别命令中使用该标志极大地加速了操作,因为它告诉识别不将整个图像加载到存储器中,只是足以计算出尺寸.