← Blog
5 menit baca

Kenapa Foto Anda Jadi Miring Setelah Diunggah

Foto tegak di ponsel tapi miring di formulir unggahan? Apa itu flag orientasi Exif, cara membedakan piksel yang diputar dari tag, dan cara menuntaskannya.

  • exif orientation
  • photo rotation
  • product photography
  • image upload
  • jpeg
  • webp
  • marketplace listings
  • file metadata
Kenapa Foto Anda Jadi Miring Setelah Diunggah

Anda memotret sebuah produk dengan ponsel, memutar perangkatnya, lalu menekan tombol rana. Di layar, fotonya terlihat tegak. Di formulir unggahan marketplace, fotonya tiba dalam keadaan rebah ke samping — file yang sama, meleset seperempat putaran.

Ini bukan ponsel Anda yang rusak. Gambarnya memang bisa jadi miring di dalam filenya, dan sudah begitu sejak Anda memotretnya. Ponsel Anda tetap menampilkannya tegak apa pun keadaannya. Formulir unggahan tadi tidak.

File Anda berada di salah satu dari dua keadaan, dan membedakan keduanya cukup dengan satu pemeriksaan.

Kamera Menyimpan Gambar Persis Seperti yang Dilihat Sensor

Sebuah sensor gambar adalah persegi panjang tetap yang terpasang mati di ponsel; ia tidak ikut berputar saat Anda memutar ponselnya. Motretlah foto potret, dan ia tetap merekam frame lanskap, dengan subjek Anda rebah menyamping di dalamnya.

Close-up bodi kamera dengan lensa yang dilepas, memperlihatkan dudukan lensa logam yang terbuka, lebih lebar daripada tingginya

Banyak kamera menghindari kerja menulis ulang jutaan piksel dan sebagai gantinya menuliskan satu angka kecil ke dalam metadata yang berarti "putar ini seperempat putaran sebelum ditampilkan." Kamera lain justru memutar pikselnya saat menyimpan lalu menandai filenya sebagai sudah tegak — itulah sebabnya dua ponsel bisa berperilaku berbeda pada foto yang sama. Di dalam JPEG, angka itu adalah tag Exif 274, Orientation, dan ia juga bisa menjelaskan frame yang dicerminkan, bukan cuma yang diputar.

Sebagian Pembaca Menghormati Flag Itu, Sebagian Mengabaikannya

Browser modern memang membacanya. Properti CSS image-orientation punya nilai awal from-image; MDN menyebutkannya terus terang: informasi EXIF yang terkandung di dalam gambar dipakai untuk memutar gambar itu sebagaimana mestinya. Itu sudah berlaku di seluruh browser sejak April 2020.

Apa pun yang bukan browser masih mungkin mengabaikan tag itu. Standar web memang sudah sepakat menghormatinya, tetapi banyak dekoder sisi server, pembuat thumbnail, dan pustaka gambar ditulis sebelum kesepakatan itu dan sama sekali tidak pernah melihat tagnya — dan tidak ada yang mewajibkan mereka melihatnya.

Jadi pertanyaannya tidak pernah "apakah foto saya miring", melainkan "apakah yang menampilkannya membaca flag itu". Galeri Anda membacanya. Pembuat thumbnail sebuah marketplace mungkin tidak.

Memutar di Galeri Bisa Jadi Cuma Menulis Ulang Flag-nya

Ketuk tombol putar, dan hasilnya tergantung aplikasinya. Dua hal yang sangat berbeda bisa terjadi.

Sebuah tangan memegang ponsel pintar di luar ruangan, layarnya menampilkan aplikasi galeri foto yang penuh gambar

  • Aplikasinya mengubah nilai orientasinya dan membiarkan data pikselnya utuh. Instan, tanpa kehilangan kualitas, dan tak terlihat oleh apa pun yang mengabaikan flag itu: foto Anda tetap miring di dalam filenya.
  • Aplikasinya mengode ulang: ia mendekode pikselnya, memutarnya, lalu menulis file baru dengan flag-nya disetel ulang. Putarannya tertanam permanen di dalam gambar dan bertahan di mana pun. Untuk PNG atau WebP lossless, itu tidak berbiaya apa-apa; untuk JPEG, biasanya biayanya satu generasi pengodean ulang — layak dibayar sekali, dan tidak layak diulang-ulang.

Jalan mana yang ditempuh sebuah aplikasi bukan sesuatu yang bisa Anda ketahui dari tombolnya, dan itu pernah berubah antarversi aplikasi yang sama. Jangan menduga apa pun; periksa keluarannya.

Yang lebih buruk adalah alat yang memutar pikselnya tetapi menyalin metadata lamanya tanpa perubahan: flag-nya masih berkata "putar", pikselnya sudah telanjur diputar, dan pembaca yang menghormatinya akan memutar foto itu dua kali.

Cara Mengetahui File Anda Ada di Keadaan yang Mana

Anda tidak bisa menuntaskan ini dengan memandanginya lebih keras, hanya dengan memeriksa sesuatu yang bukan pratinjau.

Sepasang tangan memegang ponsel pintar yang menampilkan foto-foto, diangkat di depan laptop terbuka yang layarnya menampilkan galeri foto serupa di dalam browser

  • Bandingkan bentuknya dengan angkanya. Kalau foto yang terlihat potret ternyata tercatat lebih lebar daripada tinggi di properti filenya, pikselnya adalah lanskap dan sebuah flag-lah yang sedang bekerja. Sebagian penampil ikut mengoreksi angka-angka itu juga, jadi ketidakcocokan membuktikan lebih banyak daripada kecocokan.
  • Baca sendiri flagnya. Browser, penampil desktop, dan thumbnail pengelola file kini hampir semuanya menghormati tag itu, sehingga kesepakatan di antara mereka tidak membuktikan apa pun. Bekerjalah pada salinan, jangan pernah pada aslinya, lalu buka di penampil Exif untuk membaca Orientation secara langsung. Nilai apa pun selain 1, yang sering ditampilkan sebagai "Normal", berarti ada flag yang sedang bekerja dan pikselnya tidak tegak.

Tuntaskan Orientasinya Sebelum Apa Pun Menyentuh Filenya

remover.bg menerima PNG, JPEG, dan WebP sampai 25 MB lalu mengembalikan file baru dengan background-nya sudah lenyap. Ini penghapus background, bukan editor foto: memutar adalah urusan editor foto ponsel atau alat desain Anda, sebelum Anda mengunggah.

Urutan itu penting karena Anda sedang membuat file baru. PNG maupun kontainer WebP sama-sama punya tempat untuk menaruh Exif — spesifikasi WebP dari Google mengizinkan metadata di dalam Chunk "EXIF" atau "XMP " — tetapi apakah editor tempat Anda memutar tadi ikut menuliskannya ke hasil ekspornya adalah keputusan editor itu, bukan keputusan Anda. Tanamkan putarannya ke dalam pikselnya, dan tidak ada lagi flag tersisa yang bisa hilang. Catatan kami tentang mengekspor WebP secara langsung membahas format tersebut.

Urutan kerja yang berhasil:

  1. Putar di sebuah editor lalu ekspor salinannya, alih-alih mengetuk tombol putar di galeri.
  2. Periksa nilai Orientation pada salinan hasil ekspor itu.
  3. Unggah salinan itu untuk penghapusan background.
  4. Letakkan hasil potongnya di atas warna solid atau foto Anda sendiri, dengan bayangan jatuh kalau ia perlu terlihat menapak pada sebuah permukaan.

Tim yang mendorong volume besar lewat HTTP API untuk penghapusan background massal sebaiknya menormalkan orientasinya lebih dulu di dalam pipeline: satu sumber yang miring menjadi satu hasil potong yang miring, berulang seribu kali. Orientasi berada di luar aturan background dalam syarat gambar Amazon kami, tetapi listing yang miring terlihat ceroboh, sebagus apa pun hal lain yang sudah Anda benarkan.

Kebiasaan yang Layak Dibangun

Percayalah pada filenya, bukan pada pratinjaunya. Putar lewat ekspor lalu baca Orientation sekali saja pada salinannya; setelah itu fotonya tegak di browser, di pembuat thumbnail, dan di antrean cetak percetakan sekaligus.

Lanjutkan membaca