« 高速JPEG縮小ライブラリEpeg 0.9.0とコマンドepegfe 0.0.1、EXIF情報表示exiftags 1.00のZaurus向けパッケージ | Main | REALbasicのマルチスレッドと同期機構関連機能 »

2006.09.08

JPEG加工ユーティリティ集jpeg-progs 6bのZaurus向けパッケージ

libjpegの添付ユーティリティ集であるところの、jpeg-progs 6bのZaurus向けパッケージを作りました。

ダウンロード jpeg-progs_6b_arm.ipk.bin (114.8K)

libjpegに依存しますが、これは標準で入っていると思います。


jpegtran(JPEG加工ツール)
cjpeg(JPEGエンコーダ)
djpeg(JPEGデコーダ)
wrjpgcom(JPEGコメントライター)
rdjpgcom(JPEGコメントリーダ)

が含まれます。

使用例等

個人的にはjpegtranが昔からお気に入り。これはロスレスでJPEGの加工ができます。
例えば、縦位置で撮影したデジカメのJPEGファイルを、以下のようにすると劣化無く回転できます。

jpegtran -copy all -rotate 90 /mnt/cf/somefile.jpg > /mnt/cf/somefile90.jpg

-copy allはEXIF情報を保持するためのオプション。構えが逆の人は、-rotateを270にします。
微妙に処理後はサイズが変わりますが、これはそういうものらしいです。

なお、jpeg-progsに含まれるコマンドはストリーム指向なので、リダイレクトするか、パイプにつないでください。

一度画像を展開して処理するため、5M(2592x1944)の画像がギリギリ。
これでもメモリが足りず、処理終了後にターミナルごと落ちました。
実メモリが必要らしく、swapは無効です。
3M(2048x1536)の画像は大丈夫で、1枚2.1秒で済みました(SL-C760)。ImageMagickのconvertだと、もっとかかるんではないかな。

R0011044_ss
↑epegfe 8 1.jpg 2.jpg; jpegtran -rotate 90 2.jpg>3.jpgという感じで処理したもの。嘘か誠か3264x2176の画像1点1.050秒で処理できました。epegfeで処理した時点でEXIFは消えてしまいますが。

Zaurusで撮影したスクリーンショットは縦位置のBMPですが、これを横位置のJPEGにコンバートするには、以下のようにします。元が小さいから、ImageMagickで問題無くできますけどね。

cat /mnt/cf/Screen_Files/scrn001.bmp | cjpeg -quality 90 | jpegtran
-rotate 270 >/mnt/cf/Screen_Files/Itwasprocessed.jpg

使用のヒント

jpegtranでどの画像を回転させるか? これについてはアイデアがあります。DPOFを使うのです。
アレです。プリンタでプリントする画像をデジカメ側で指定できる仕組み。
DPOFを使ってプリントする画像を選択すると、恐らくメディアのルートに/MISC/AUTPRINT.MRKというテキストファイルが出来ます。ここに選択した画像のパスが記録されるのです。例えば、こんな風に。

[HDR]
GEN REV = 01.10
GEN CRT = "RICOH GR Digital "
[JOB]
PRT PID = 001
PRT TYP = STD
PRT QTY = 001
IMG FMT = EXIF2 -J
<IMG SRC = "../DCIM/100RICOH/R0011046.JPG">
[JOB]
PRT PID = 002
PRT TYP = STD
PRT QTY = 001
IMG FMT = EXIF2 -J
<IMG SRC = "../DCIM/100RICOH/R0011044.JPG">

これをアレしてコレすればわりと簡単にいくんではないでしょうか。

プレビューが高速で表示され、画像を複数選択でき、任意のコマンドにファイルパスを渡せるソフトウェアがあったら教えてください。

|

« 高速JPEG縮小ライブラリEpeg 0.9.0とコマンドepegfe 0.0.1、EXIF情報表示exiftags 1.00のZaurus向けパッケージ | Main | REALbasicのマルチスレッドと同期機構関連機能 »