exifをいじってロスレス画像回転
久しぶりに投稿を
ちょいと案件で画像をロスレスで回転できないかなってことでやってみたのでメモ
調べてみたところ、画像のexifをいじるのはexiftoolってのが便利みたい。
他にもpelとかあるけど、どうもコードが長くなる傾向が。
www.sno.phy.queensu.ca
lsolesen/pel @ GitHub
結果から言うとexifでのロスレス回転はできるものの、chromeなどのブラウザではimgタグで画像を表示する際はexifの回転情報を反映しないとのこと
#新規タブで画像のみを開く場合はOK
ってことで、現状ではPHPなりconvertなりで画像を劣化させながら回転されるしか無いみたい。
縦と横が8の倍数であれば、ロスレス回転も可能だが、スマホのカメラなどの画素数は8の倍数なんだろうか。
maplesikou.seesaa.net
簡単なソースコード
<?php /* 1: // 通常 2: // 水平反転 3: // 180°回転 4: // 垂直反転 5: // 水平反転、 時計回りに90°回転 6: // 時計回りに90°回転 7: // 時計回りに270°回転(反時計回りに90°回転) 水平反転 8: // 時計回りに270°回転(反時計回りに90°回転) */ $rotate_id = 3; $filename = "image.jpg"; $cmd = "exiftool -overwrite_original -Orientation={$rotate_id} -n {$filename} "; system( $cmd );