我尝试做的是使用ImageMagick在图像上创建边框。 这是一个简单的过程,我可以使用硬编码值手动完成,但我希望它是聪明的。 它需要做的是,能够简单地定义你想要边框的图像,然后脚本运行,获取图像的尺寸,然后调整我对这些尺寸的边框图像的大小,并拍打顶部的边界。
为此,根据我的基本理解,我必须将图像的宽度和高度存储为变量。我得到的最近(实际得到的信息)是
identify "image.png"
那会吐出我需要的信息,但是我需要将宽度/高度存储到变量中以便在以后的过程中使用它们。 我从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
从该代码的海报所说的,它将从image.png获得宽度和高度(%w和%h),然后将其存储在imagecheck2.bat中作为我可以作为%1访问的变量(对于% w)和%2(对于%h)
所以,据说,在imagecheck2.bat里面,我有
@echo off
echo The parameters were: %1 and %2
pause
打印出来
The parameters were: and
这应该是一件简单的事情;我缺少什么想法? 提前谢谢。
答案 0 :(得分: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%
将“logo:”替换为图像的文件名。
尽管如此,我强烈建议不要使用MS Batch,因为程序越复杂,代码就越荒谬。
顺便说一句,在该识别命令中使用-ping
标志会大大加快操作速度,因为它告诉标识不要将整个图像加载到内存中,只需足以计算尺寸。< / p>
答案 1 :(得分:2)
您可以简单地将宽度和高度拉出PNG,而不是使用ImageMagick。它们位于已知位置,每个都是网络字节顺序的4字节整数(最高有效字节优先)。从文件开头的偏移是
signature: bytes 0-7
IHDR length: bytes 8-11
"IHDR": bytes 12-15
width: bytes 16-19
height: bytes 20-23