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 );