<?php // コマンドラインから画像を取得 if (count($argv) <= 1){ echo "no input"; exit; } $input = $argv[1]; $outfile = preg_replace('/\.(jpeg|jpg)$/', '-out.jpeg', $input); $cmpfile = preg_replace('/\.(jpeg|jpg)$/', '-cmp.jpeg', $input); $i = new Imagick(); $i->readImage($input); $i->stripImage(); $i->writeImage($cmpfile); echo " 回転前: $outfile\n"; // 回転用に画像を処理 $img = new Imagick(); $img->readImage($input); // 画像の向きを自動回転 img_auto_rotate($img); // 画像を保存 $img->writeImage($outfile); echo " 回転後: $outfile\n"; // 画像の向きを自動回転 function img_auto_rotate(Imagick $img){ switch ($img->getImageOrientation()){ case Imagick::ORIENTATION_TOPLEFT: break; case Imagick::ORIENTATION_TOPRIGHT: $img->flopImage(); break; case Imagick::ORIENTATION_BOTTOMRIGHT: $img->rotateImage("#000, 180"); break; case Imagick::ORIENTATION_LEFTTOP: $img->flopImage(); $img->rotateImage("#000", -90); break; case Imagick::ORIENTATION_RIGHTTOP: $img->rotateImage("#000", 90); break; case Imagick::ORIENTATION_RIGHTBOTTOM: $img->flopImage(); $img->rotateImage("#000", 90); break; case Imagick::ORIENTATION_LEFTBOTTOM: $img->rotateImage("#000", -90); break; default: break; } $img->setImageOrientation(Imagick::ORIENTATION_TOPLEFT); return $img; }