命令行字符串检查和参数传递 (ImageMagick)

发布于 2024-12-05 04:35:32 字数 625 浏览 0 评论 0原文

我发现了这个很酷的小片段,它为图像添加了阴影。 (我认为使用 imageMagick..)

  image-shadow () {
  out=${1%.*}-shadow.${1#*.}
  in=$1
  echo "Converted file : $out"
  if [ ! -z $2 ] ; then 
    convert $in -frame $2 $out
    in=$out
  fi
  convert $in \( +clone -background black -shadow 60x5+3+3 \) \
    +swap -background transparent -layers merge +repage $out
  }

我们使用:

image-shadow test.png 0x0

添加 0x0 边框和 3x3 阴影,如函数内部定义的那样...

现在,我有 *-hd.png 图像和 *.png 图像..并且想要将 3x3 阴影添加到 *.png,将 6x6 阴影添加到 *-hd.png(显然,视网膜图形..)

1- 我如何比较图像名称,并决定

2- 我如何通过阴影大小

谢谢!

I have this cool little snippet that I found, which adds a shadow to an image. (using imageMagick, i think..)

  image-shadow () {
  out=${1%.*}-shadow.${1#*.}
  in=$1
  echo "Converted file : $out"
  if [ ! -z $2 ] ; then 
    convert $in -frame $2 $out
    in=$out
  fi
  convert $in \( +clone -background black -shadow 60x5+3+3 \) \
    +swap -background transparent -layers merge +repage $out
  }

We use:

image-shadow test.png 0x0

to add 0x0 border, and 3x3 shadow, as defined inside the function...

Now, I have *-hd.png images, and *.png images .. And would like to add 3x3 shadows to the *.png and 6x6 to the *-hd.png (obviously, retina graphics..)

1- How can I compare the the image name, and decide

2- How can I pass the shadow size

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

帅气称霸 2024-12-12 04:35:32

对于 1.:使用 find,对于此类工作来说,它确实是瑞士军刀:

find '(' -name '*.png' -and -not -name '*-hd.png' ')' -exec image-shadow '{}' 0x0 ';'

当然,您必须将函数保存为单个 shell 文件而不是 shell 函数,但这对于代码重用来说无论如何都是可取的。

对于 2.:使用另一个命令行参数,该参数在函数中被引用为 $3。

For 1.: Use find, it is really the Swiss army knife for such jobs:

find '(' -name '*.png' -and -not -name '*-hd.png' ')' -exec image-shadow '{}' 0x0 ';'

Of course, you'll have to save your function as a single shell file instead of a shell function, but this is desirable for code reuse anyway.

For 2.: Use another command line argument, which is referenced in the function as $3.

无法言说的痛 2024-12-12 04:35:32
for f in *.png; do
  case "$f" in
    *-hd.png) shadow="6x6" ;;
    *) shadow="3x3" ;;
  esac
  image-shadow "$f" $shadow
dona
for f in *.png; do
  case "$f" in
    *-hd.png) shadow="6x6" ;;
    *) shadow="3x3" ;;
  esac
  image-shadow "$f" $shadow
dona
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文