我需要将几个15x15的PNG转换为18x18 PNG。
但是,我不想简单地缩放整个图像。
我想要的基本上是保留精确的旧图像,但用不可见/透明像素线“填充”它。
所以让我们说原始图像看起来像这样(假设X
是像素):
XXXX
XXXX
XXXX
XXXX
我想把它变成这样的东西(X
是原始图像的像素,T
是新的透明像素):
XXXXT
XXXXT
XXXXT
XXXXT
TTTTT
这是否可以使用命令行工具(这样可以自动化),也许像imagemagick这样的东西?
答案 0 :(得分:5)
这将完成这项工作:
convert input_file -background transparent -extent '18x18' output_file
答案 1 :(得分:4)
您可以使用ImageMagick的-append
和+append
运算符执行此操作。 -append
附加到垂直(底部),+append
水平附加(右):
convert \
-background transparent \
15x15.png \
null: null: null: +append \
null: null: null: -append \
18x18.png
null:
图片是内置的ImageMagick:它代表1个透明像素。
但与IM的情况一样:有一千种方法可以达到同一目标。
您是否需要将透明部分添加到左侧和顶部(而不是右侧和底部),或者是否要将像素添加到一个,或三个或四个(而不是仅两个边缘) ,你应该明白如何修改我的命令。
也许你发现Theodros的答案更直观(+1就可以了!)。在这种情况下,如果要更改添加像素的边框,可以将-gravity
参数添加到其命令中:
convert infile -background transparent -gravity southeast -extent '18x18' outfile
除了south
之外,您还可以使用north
,northeast
,east
,...和northwest
。不要忘记center
...