1

IOS6 で safari モバイル ブラウザーを使用すると、ファイル アップロード機能により、ユーザーは写真を撮ることができます。残念ながら、写真をスナップすると、写真のサムはブラウザーに正しく表示されますが、サーバーにアップロードすると、ファイルが 90 度回転します。これは、iPhone が設定する exif データが原因のようです。提供時に画像を回転させて向きを修正するコードがあります。ただし、向きを気にする必要がないように、回転した適切な向きの画像を保存したほうがよいのではないかと思います。私の他の写真の多くにはexifデータさえありません。それを避けることができれば、それを台無しにしたくありません。

適切な向きになるように画像を保存するコードを提案できますか?

画像を回転させるコードです。次のコードは適切な向きの画像を表示しますが、私がやりたいのは画像を保存して、向きを気にせずにいつでも提供できるようにすることです。

impagejpegまた、任意のコードが gif だけでなく jpg でも機能するように、以下のコードの呼び出しを置き換えたいと思います。

提案/コードをありがとう!

PHP

//Here is sample image after uploaded to server and moved to a directory
$target = "pics/779_pic.jpg";
$source = imagecreatefromstring(file_get_contents($target));
$exif = exif_read_data($target);
if(!empty($exif['Orientation'])) {
    switch($exif['Orientation']) {
        case 8:
            $image = imagerotate($source,90,0);
//echo 'It is 8';
            break;
        case 3:
            $image = imagerotate($source,180,0);
//echo 'It is 3';
            break;
        case 6:
            $image = imagerotate($source,-90,0);
//echo 'It is 6';
            break;

    }
}
// $image now contains a resource with the image oriented correctly
//This is where I want to save resource properly oriented instead of display.
 header('Content-type: image/jpg');
imagejpeg($image);
?>
4

2 に答える 2

0

EXIF メタデータを保持できるのは JPEG または TIFF ファイルのみであるため、コードでの GIF (または PNG) の処理について心配する必要はありません。

私が信じている公式仕様の9ページから:

圧縮ファイルは、アプリケーション マーカー セグメント (APP1 および APP2) が挿入された JPEG (ISO/IEC 10918-1) として記録されます。非圧縮ファイルは、TIFF Rev. 6.0 形式で記録されます。

http://www.cipa.jp/hyoujunka/kikaku/pdf/DC-008-2010_J.pdf

于 2013-02-06T15:32:24.033 に答える