簡體   English   中英

命令行字符串檢查和參數傳遞(ImageMagick)

[英]Command Line String Checking and argument passing (ImageMagick)

我發現了這個很酷的小片段,為圖像添加了陰影。 (我認為使用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圖像..並想在* .png中添加3x3陰影,在* -hd.png中添加6x6(顯然是視網膜圖形..)

1-如何比較圖像名稱,並確定

2-如何傳遞陰影大小

謝謝!

對於1 ::使用find,實際上是用於此類工作的瑞士軍刀:

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

當然,您必須將函數保存為單個shell文件而不是shell函數,但是無論如何,這對於代碼重用來說是理想的。

對於2 ::使用另一個命令行參數,該參數在函數中被引用為$ 3。

for f in *.png; do
  case "$f" in
    *-hd.png) shadow="6x6" ;;
    *) shadow="3x3" ;;
  esac
  image-shadow "$f" $shadow
dona

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM