【问题标题】:Add lines of transparent pixels to image using command line使用命令行向图像添加透明像素线
【发布时间】:2012-08-06 18:09:53
【问题描述】:

我有几个 15x15 PNG 需要转换为 18x18 PNG。

但是,我不想简单地放大整个图像。

我想要的基本上是保留确切的旧图像,但用不可见/透明像素线“填充”它。

假设原始图像看起来像这样(假设Xs 是像素):

XXXX
XXXX
XXXX
XXXX

我想把它变成这样的东西(X 是原始图像的像素,T 是新的透明像素):

XXXXT
XXXXT
XXXXT
XXXXT
TTTTT

这是否可能使用命令行工具(这样可以自动化),也许使用 imagemagick 之类的工具?

【问题讨论】:

  • 我认为这属于超级用户。
  • @H2CO3:我猜,这取决于您是否认为 bash 是一种编程语言。随意移动它。
  • 我有一种强烈的感觉,即您正在寻找类似convert -extend .... (imagemagick) 的东西。但我不是专家......

标签: macos image bash imagemagick


【解决方案1】:

这样就可以了:

convert input_file -background transparent -extent '18x18' output_file

【讨论】:

    【解决方案2】:

    您可以使用 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,您还可以使用northnortheasteast、...和northwest。不要忘记center...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-13
      • 1970-01-01
      • 2013-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多