bash + ImageMagick > rainbow color 상자 만들기 v0.1

운영 환경
CentOS release 6.9 (Final)
GNU Bash-4.1
ImageMagick Version: ImageMagick 6.7.2-7 2017-03-22 Q16

처리 개요


  • 안쪽에서 바깥쪽까지 rainbow color 상자를 만듭니다
  • bash 스크립트에서 ImageMagick 명령을 사용합니다.

    코드 v0.1



    layered_image_180807_exec
    #!/usr/bin/bash/env
    
    set -eu # just in case
    
    # v0.1 Aug. 07, 2018
    #   - draw rainbow colored layered image
    
    WRK1_FILE="wrk1.png"  # work file (arbitrary names)
    WRK2_FILE="wrk2.png"  # work file (arbitrary names)
    OUT_FILE="out.png"    # output
    
    wrksize=100  # size of the image
    incsize=10   # increment size
    
    #------------------------------
    #CONFIGURATION
    #   colors from innermost to outer
    COLS=("violet" "indigo" "blue" "green" "yellow" "orange" "red")
    #------------------------------
    
    #1. base image
    sizestr=$(echo $wrksize | awk '{print $1"x"$1}')  # e.g. 100x100
    convert -size $sizestr xc:${COLS[0]} $WRK1_FILE
    
    #2. expand image
    ((maxloop=${#COLS[*]}-1))
    for idx in $(seq 1 $maxloop)
    do
      ((wrksize=wrksize+incsize*2))
      sizestr=$(echo $wrksize | awk '{print $1"x"$1}')  # e.g. 100x100
      echo $sizestr
      convert $WRK1_FILE -page +10+10 -background ${COLS[idx]} \
        -extent $sizestr -flatten $WRK2_FILE
      cp $WRK2_FILE $WRK1_FILE
    done
    
    #3. output 
    mv $WRK2_FILE $OUT_FILE
    
    #remove temporary files
    rm -f $WRK1_FILE
    
    echo "[$OUT_FILE] is produced"
    

    설정



    상기의 CONFIGURATION 기재의 색명의 array를 변경하면, 그에 맞추어 색이 붙는다.

    실행



    실행
    $ bash layered_image_180807_exec 
    120x120
    140x140
    160x160
    180x180
    200x200
    220x220
    [out.png] is produced
    
    eog out.png 에서 본 것이 이하.



    참고


  • 모든 Bash $((산술식)) - A 기본편
  • Bash에서 여러 가지 반복

  • 정보 감사입니다.

    이미지 용도



    이미지의 일부를 잘라내어 합성 할 때 잘라내는 것이 성공했는지 확인하기 위해 위와 같은 이미지를 사용합니다.

    좋은 웹페이지 즐겨찾기