programing

Image Magick을 사용하여 EXIF 방향 검출 및 이미지 회전

projobs 2022. 10. 11. 22:00
반응형

Image Magick을 사용하여 EXIF 방향 검출 및 이미지 회전

Canon DSLR은 사진을 가로 방향으로 저장하고,exif::orientation로테이션 할 수 있게 해줬어요.

질문:exif 방향 데이터를 사용하여 이미지를 원하는 방향으로 다시 저장하여 exif 데이터를 올바른 방향으로 표시할 필요가 없도록 하려면 어떻게 해야 합니까?

Image Magick의 자동 오리엔테이션 옵션을 사용합니다.convert이 일을 하기 위해서.

convert your-image.jpg -auto-orient output.jpg

또는 사용mogrify제자리걸음을 하다

mogrify -auto-orient your-image.jpg

PHP Imagick 방법은 이미지 방향을 테스트하고 그에 따라 이미지를 회전/플립하는 것입니다.

function autorotate(Imagick $image)
{
    switch ($image->getImageOrientation()) {
    case Imagick::ORIENTATION_TOPLEFT:
        break;
    case Imagick::ORIENTATION_TOPRIGHT:
        $image->flopImage();
        break;
    case Imagick::ORIENTATION_BOTTOMRIGHT:
        $image->rotateImage("#000", 180);
        break;
    case Imagick::ORIENTATION_BOTTOMLEFT:
        $image->flopImage();
        $image->rotateImage("#000", 180);
        break;
    case Imagick::ORIENTATION_LEFTTOP:
        $image->flopImage();
        $image->rotateImage("#000", -90);
        break;
    case Imagick::ORIENTATION_RIGHTTOP:
        $image->rotateImage("#000", 90);
        break;
    case Imagick::ORIENTATION_RIGHTBOTTOM:
        $image->flopImage();
        $image->rotateImage("#000", 90);
        break;
    case Imagick::ORIENTATION_LEFTBOTTOM:
        $image->rotateImage("#000", -90);
        break;
    default: // Invalid orientation
        break;
    }
    $image->setImageOrientation(Imagick::ORIENTATION_TOPLEFT);
}

함수는 다음과 같이 사용할 수 있습니다.

$img = new Imagick('/path/to/file');
autorotate($img);
$img->stripImage(); // if you want to get rid of all EXIF data
$img->writeImage();

언급URL : https://stackoverflow.com/questions/19456036/detect-exif-orientation-and-rotate-image-using-imagemagick

반응형