Rumah >pembangunan bahagian belakang >tutorial php >Mengapakah orientasi imej iPhone dan Android tidak diperbetulkan menggunakan fungsi `exif_read_data` PHP?

Mengapakah orientasi imej iPhone dan Android tidak diperbetulkan menggunakan fungsi `exif_read_data` PHP?

Barbara Streisand
Barbara Streisandasal
2024-10-28 06:57:02447semak imbas

Why are iPhone and Android image orientations not being corrected using PHP's `exif_read_data` function?

PHP read_exif_data dan Laraskan Orientasi

Kod yang disediakan cuba melaraskan orientasi imej JPEG yang dimuat naik berdasarkan data EXIF. Walau bagaimanapun, pengguna telah melaporkan isu dengan imej daripada iPhone dan peranti Android.

Analisis Kod

Data EXIF ​​​​diekstrak menggunakan fungsi exif_read_data. Pernyataan suis menyemak orientasi tertentu dan cuba memutarkan imej dengan sewajarnya. Walau bagaimanapun, nampaknya data EXIF ​​yang disediakan tidak mengandungi nilai Orientasi yang sah.

Kod Kemas Kini

Untuk menyelesaikan isu ini, kami boleh menggunakan kaedah yang lebih mantap untuk mengekstrak data orientasi. Berikut ialah versi kod yang dikemas kini:

<code class="php">$exif = exif_read_data($upload_path . $newfilename, 'ANY_TAG');
$ort = $exif['IFD0']['Orientation'] ?? 1;</code>

Nilai Orientasi EXIF

Nilai Orientasi boleh berjulat dari 1 hingga 8, dengan nilai berbeza yang menunjukkan putaran atau flipping yang berbeza .

  • 1: Mendatar (normal)
  • 3: Putaran 180° CW
  • 6: Putaran 90° CW
  • 8: 90° Putaran CCW
  • 2: Flip mendatar
  • 4: Flip menegak
  • 5: Flip mendatar dan putaran 90° CW
  • 7: Flip menegak dan 90° Putaran CW

Melaraskan Orientasi Imej

Dengan nilai orientasi yang betul, kita boleh melaraskan imej mengikut keperluan:

<code class="php">switch ($ort)
{
    case 3: // 180 rotate left
        $image->imagerotate(-180, -1);
        break;

    case 6: // 90 rotate right
        $image->imagerotate(-90, -1);
        break;

    case 8:    // 90 rotate left
        $image->imagerotate(90, -1);
        break;
}</code>

Pertimbangan Tambahan

Jika data EXIF ​​masih tidak mengandungi nilai Orientasi atau pelarasan nampaknya tidak berfungsi, anda mungkin perlu merujuk dokumentasi khusus untuk pustaka imej anda atau pertimbangkan untuk menggunakan kaedah alternatif untuk menentukan orientasi yang betul.

Atas ialah kandungan terperinci Mengapakah orientasi imej iPhone dan Android tidak diperbetulkan menggunakan fungsi `exif_read_data` PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn