本サイトで公開しておりますプログラムは無断使用禁止です。使用料(1個あたり5,000円)をお支払いいただくことでご利用いただけます。
連絡先についてはこちらをご覧ください。

ディレクトリ内 RAW画像ファイルのメタデータからJPEGファイルを並列実行で取得するBashプログラム

別途 exiftoolコマンド、convert コマンド(ImageMagick) が必要。
# 無断使用禁止
fsall=$(ls | grep -i '\.CR2')
[ -z "$fsall" ] && exit

jpgs=$(ls naiveJpg 2>/dev/null | grep -i '\.CR2.JPG' | sed -e 's/.jpg$//')

fs=$( ( (echo "$fsall"; echo "$jpgs") | sort -u; echo "$jpgs") | sort | uniq -u | grep .)
if [ -z "$fs" ]; then
    echo "no file $(pwd)"
    exit
fi

if [ "$1" = child ]; then
    cnt=0

    while :; do
        cnt=$((cnt + 1))
        ((cnt > 1)) && sleep 1

        f=""
        count=$(echo "$fs" | wc -l | awk '{print $1}')
        ii=1
        while ((ii <= count)); do
            tmp=$(echo "$fs" | head -n $ii | tail -n 1)
            ii=$((ii+1))

            [ -f "naiveJpg/$tmp.jpg" ] && continue

            if mkdir "naiveJpg/$tmp.lock" 2>/dev/null; then
                f="$tmp"
                break
            fi
        done
        [ -z "$f" ] && break

        exiftool -PreviewImage -b "$f" > "naiveJpg/$f.jpg"
        convert "naiveJpg/$f.jpg" -resize 1500x "thumbJpg/$f.jpg"

        rmdir "naiveJpg/$f.lock"
    done

    exit
fi

concurrency=8

mkdir naiveJpg thumbJpg 2>/dev/null

for i in $(seq $concurrency); do
    (
        bash "$0" child
    ) &
done

MENU - sun610サイト
●画像 0001 0002 0003 0004 0005
●プログラム ディレクトリ内ファイルロックを試すRubyプログラム
     NodeListからArrayにシャッフルしつつ変換するJavaScriptプログラム
     ディレクトリ内 RAW画像ファイルのメタデータからJPEGファイルを並列実行で取得するBashプログラム
     cgroup によって、プロセス(群)のCPU使用率を制御するBashプログラム
     TTY内にてsudoセッションを長時間維持するBashプログラム
●歴史画像アーカイブ 00001 00002 00003 00004 00005 00006
連絡先
inserted by FC2 system