土曜日, 8月 06, 2011

ランチボックススクリプト : Lunch box scripts

---------------
こないだ、書いたような気がするが、
奥さんがブログ掲載用にお弁当写真を結合してくれと。

---------------
まず、ディレクトリ内の写真の名前をそろえる。

#!/bin/bash

##
## LunchBox_ReName_with_TimeStamp.sh
##
##

FileName="LunchBox"
for inputfile in ./*.jpg ; do


#ls -l --time-style=full-iso
    DateStamp=`ls -l --time-style=full-iso ${inputfile} | awk '{printf("%s", $6)}' `
#    TimeStamp=`ls -l --time-style=full-iso ${inputfile} | awk '{printf("%s", $7)}' `
    TimeStamp=`ls -l --time-style=full-iso --full-time ${inputfile} | awk '{printf("%s", $7)}' `

    DateStamp=`echo ${DateStamp} | sed -e "s/-//g" `
    TimeStamp=`echo ${TimeStamp} | sed -e "s/://g" `
    TimeStamp=`echo ${TimeStamp} | sed -e "s/.000000000//g" `

    NewFileName=`echo ${DateStamp}_${TimeStamp}_${FileName}`

    echo "converting : "${inputfile} ${DateStamp} ${TimeStamp} ${NewFileName}

    mv ${inputfile} ${NewFileName}.jpg

done

---------------

ねんのため、ファイル名で TimeStamp を変えるスクリプトも

#!/bin/bash
# ChangeTimeStamp_with_FileName.sh
FileName="LunchBox"

for inputfile in ./*${FileName}.jpg ; do

    DateStamp=`echo ${inputfile} | cut -c3-10`
    TimeStamp=`echo ${inputfile} | cut -c12-15`
    echo ${inputfile} ${DateStamp} ${TimeStamp}

    touch -t${DateStamp}${TimeStamp} ${inputfile}

done


---------------

 ほんで、各写真に、日付クレジットを挿入。

#!/bin/bash
#
#   InsertCredit4LunchBox.sh
#
#

Filter="LunchBox"
TmpFile="./tmp.jpg"
CiteFile="./cite.jpg"

#FontPath="/usr/share/fonts/sazanami-fonts-gothic/sazanami-gothic.ttf"
FontPath="/usr/share/fonts//vlgothic/VL-Gothic-Regular.ttf"

for inputfile in ./*${Filter}*.jpg ; do
    echo " "
    echo "now converting : "${inputfile}
    cp ${inputfile} ${TmpFile}


    ### 画像ファイルから横幅情報検出
    FigSize=`identify ${inputfile} | awk '{printf($3)}'`
    FigSize=`echo ${FigSize} | sed -e "s/x/ /"`
    YokoSize=`echo ${FigSize} | awk '{printf($1)}'`
    TateSize=`echo ${FigSize} | awk '{printf($2)}'`
    echo "Figure Size:"${FigSize}"  Yoko Size:"${YokoSize}"  Tate Size:"${TateSize}

    strYokoSize=`echo ${YokoSize}*0.5 | bc`
    echo "                          strYokoSize:"${strYokoSize}


    ### ファイル名からお弁当写真の日付の検出
    nYear=`echo ${inputfile} | cut -c 3-6`
    nMonth=`echo ${inputfile} | cut -c 7-8`
    nDay=`echo ${inputfile} | cut -c 9-10`

    ### 英語ロケールに変更
    export LANG=en
    DateStampE=`date --date ${nYear}/${nMonth}/${nDay} +"%A, %B %d, %Y"`
    export LANG=ja_JP.UTF-8
    #echo ${DateStampE}
    # echo "挿入キーワード"
    StampString=" made on "

    # 最終的に挿入する文字列設定
    charAnnot=`echo ${StampString} ${DateStampE} `
    echo "label string to be inserted : "${charAnnot}
    echo ${charAnnot} > ./DateStamp.txt


    ## string label image
    convert -background white -fill blue \
    -font ${FontPath} -size ${strYokoSize}x label:@DateStamp.txt ${CiteFile}

    convert -append ${TmpFile} ${CiteFile} ${inputfile}


done

rm -f ${TmpFile}
rm -f ${CiteFile}

---------------

最後に、m 行 x n  列で、連結。

#!/bin/bash
#
#   ArrayLunchBoxPhotos.sh
#
#

 #!/bin/bash

# number of columns
nCol=3

nFig=1
for inputfile in ./*.jpg ; do
    nFig=$((nFig+1))
    echo ${inputfile}
    #cp ${inputfile} "./tmp.jpg"
    # insert credit
done

nRow=`expr ${nFig} / ${nCol}`
nRow=$((nRow+1))

echo " "
echo "---------- figure array -----------"
echo "   nCol: "${nCol}
echo "   nRow: "${nRow}
echo "   nFig: "${nFig}
echo " "

montage -tile ${nCol}x${nRow} -geometry 640x480+5+5 -background "#000000" -bordercolor "#ffffff" -border 2 ./*.jpg output.jpg


---------------
上記4つを連ちゃん操作するバッチもつくるといいかも。

---------------

イメージ的にゃ、こんな出力。




















とりあえず、できあがり。

ゆくゆく、各写真をクリックしたら、拡大するようにしてくれとか
言うのかなぁ....。

そうなったら、div 付きの html 出力するバッチか...。
---------------

0 件のコメント:

コメントを投稿