← Blog
4 dk okuma

Fotoğraf Yükleyince Neden Yan Dönüyor?

Telefonda dik, yükleme formunda yan mı? Exif yön bayrağı ne yapıyor, döndürülmüş piksel ile etiket nasıl ayırt edilir ve bu iş nasıl bitirilir.

  • exif orientation
  • photo rotation
  • product photography
  • image upload
  • jpeg
  • webp
  • marketplace listings
  • file metadata
Fotoğraf Yükleyince Neden Yan Dönüyor?

Telefonunla bir ürün çekiyorsun, cihazı çeviriyorsun, deklanşöre dokunuyorsun. Ekranda dik görünüyor. Pazaryerinin yükleme formunda ise yan yatmış hâlde beliriyor — aynı dosya, çeyrek tur kaymış.

Bu, telefonunun bozulması değil. Görsel, dosyanın içinde gerçekten yan duruyor olabilir ve çektiğin andan beri öyle. Telefonun sana onu ne olursa olsun doğru yönde gösteriyor. Yükleme formu göstermedi.

Dosyan iki durumdan birinde ve hangisi olduğunu anlamak tek bir kontrol alıyor.

Kamera görüntüyü sensörün gördüğü gibi kaydediyor

Bir görsel sensörü telefona sabitlenmiş bir dikdörtgendir; sen döndüğünde o dönmez. Dikey bir fotoğraf çektiğinde yine yatay bir kare kaydeder, öznen de o karenin içinde yan yatar.

Objektifi çıkarılmış bir fotoğraf makinesi gövdesinin yakın çekimi; açıkta kalan metal objektif yuvası boyundan daha geniş duruyor

Birçok kamera milyonlarca pikseli yeniden yazmaktan kaçınıp bunun yerine üst veriye "bunu göstermeden önce çeyrek tur çevir" anlamına gelen küçük bir sayı yazıyor. Diğerleri kaydederken pikselleri döndürüp dosyayı zaten dik diye işaretliyor — aynı karede iki telefonun farklı davranmasının sebebi bu. Bir JPEG'de o sayı Exif etiketi 274, yani Orientation; dönmelerin yanı sıra aynalanmış kareleri de tarif edebiliyor.

Bazı okuyucular bayrağa uyuyor, bazıları görmezden geliyor

Modern tarayıcılar onu okuyor. CSS image-orientation özelliğinin başlangıç değeri from-image; MDN bunu açıkça söylüyor: "Görselin içerdiği EXIF bilgisi, görseli uygun biçimde döndürmek için kullanılır." Bu, Nisan 2020'den beri tarayıcılar genelinde çalışıyor.

Tarayıcı olmayan her şey etiketi hâlâ görmezden gelebilir. Web standartları ona uymakta buluştu, ama sunucu tarafındaki kod çözücülerin, küçük görsel üreticilerinin ve görsel kitaplıklarının birçoğu bu uzlaşmadan önce yazıldı ve etikete hiç bakmıyor — kimseyi de buna zorlayan bir şey yok.

Yani soru hiçbir zaman "fotoğrafım yan mı" değil, "onu gösteren şey bayrağı okudu mu" olmalı. Galerin okuyor. Bir pazaryerinin küçük görsel üreticisi okumayabilir.

Galeride döndürmek yalnızca bayrağı yeniden yazıyor olabilir

Döndür düğmesine dokun; sonuç uygulamaya bağlı. Birbirinden çok farklı iki şey olabilir.

Açık havada elde tutulan bir akıllı telefon; ekranında fotoğraflarla dolu bir galeri uygulaması

  • Uygulama yön değerini değiştirir, piksel verisine dokunmaz. Anında, kayıpsız ve bayrağı görmezden gelen her şey için görünmez: fotoğrafın dosyanın içinde hâlâ yan duruyor.
  • Uygulama yeniden kodlar: pikselleri çözer, döndürür, bayrağı sıfırlanmış yeni bir dosya yazar. Dönme piksellere işlenmiştir ve her yerde hayatta kalır. PNG ya da kayıpsız WebP için bunun bir bedeli yok; JPEG'de ise genellikle bir yeniden kodlama nesline mal oluyor — bir kez ödemeye değer, tekrarlamaya değmez.

Bir uygulamanın hangi yolu seçtiğini düğmeye bakarak anlayamazsın; üstelik bu, aynı uygulamanın sürümleri arasında değişebiliyor. Hiçbir şeyi varsayma; çıktıyı kontrol et.

Daha kötüsü, pikselleri döndürüp eski üst veriyi olduğu gibi kopyalayan bir araç: bayrak hâlâ "döndür" diyor, pikseller zaten dönmüş durumda ve bayrağa uyan okuyucular fotoğrafı iki kez çeviriyor.

Dosyanın hangi durumda olduğu nasıl anlaşılır

Bunu daha dikkatli bakarak çözemezsin; ancak önizleme olmayan bir şeyi kontrol ederek çözersin.

Elde tutulan bir akıllı telefonda fotoğraflar; telefon, ekranında tarayıcıda aynı türden bir fotoğraf galerisi açık olan bir dizüstü bilgisayarın önünde havada tutuluyor

  • Şekli sayılarla karşılaştır. Dikey görünen bir fotoğraf, dosya özelliklerinde boyundan daha geniş olarak bildiriliyorsa pikseller yataydır ve işi bir bayrak yapıyordur. Bazı görüntüleyiciler o sayıları da düzeltiyor, dolayısıyla uyuşmazlık, uyuşmaya kıyasla daha çok şey kanıtlar.
  • Bayrağın kendisini oku. Tarayıcılar, masaüstü görüntüleyicileri ve dosya yöneticisi küçük görselleri artık neredeyse hep etikete uyuyor, yani aralarındaki uyum hiçbir şeyi kanıtlamıyor. Orijinalin üstünde değil, bir kopya üstünde çalış ve Orientation değerini doğrudan okumak için kopyayı bir Exif görüntüleyicide aç. Genellikle "Normal" diye gösterilen 1 dışındaki her değer, işi bir bayrağın yaptığı ve piksellerin dik olmadığı anlamına gelir.

Yön işini, dosyaya başka hiçbir şey dokunmadan önce bitir

remover.bg 25 MB'a kadar PNG, JPEG ve WebP kabul ediyor ve arka planı kaldırılmış yeni bir dosya veriyor. O bir arka plan silici, fotoğraf düzenleyici değil: döndürme işi telefonunun fotoğraf düzenleyicisine ya da tasarım aracına ait — hem de yüklemeden önce.

Bu sıra önemli, çünkü yeni bir dosya üretiyorsun. PNG'nin de WebP kabının da Exif'i koyacak bir yeri var — Google'ın WebP belirtimi üst verinin "'EXIF' ya da 'XMP ' Chunk'larında" bulunmasına izin veriyor — ama döndürme yaptığın düzenleyicinin dışa aktarımına bunlardan bir şey yazıp yazmayacağı senin değil, o düzenleyicinin kararı. Dönmeyi piksellere işle; geriye kaybedilecek bir bayrak kalmasın. Dönüştürmeden WebP dışa aktarma notlarımız bu biçimi ele alıyor.

İşleyen bir sıralama:

  1. Galeride döndür düğmesine dokunmak yerine bir düzenleyicide döndür ve bir kopya dışa aktar.
  2. Dışa aktardığın o kopyada Orientation değerini kontrol et.
  3. Arka plan silmek için onu yükle.
  4. Kesiti düz bir rengin ya da kendi fotoğrafının üstüne yerleştir; bir yüzeye oturması gerekiyorsa gölge ekle.

HTTP API üzerinden toplu arka plan silme yaparak yüksek hacimde iş geçiren ekipler, yönü önce işlem hattında normalleştirmeli: yan duran tek bir kaynak, yan duran tek bir kesit oluyor — bin kez üst üste. Yön, Amazon ürün görseli rehberimizdeki arka plan kurallarının dışında kalıyor, ama yan yatmış bir ilan, gerisini ne kadar doğru yapmış olursan ol özensiz görünüyor.

Edinmeye değer alışkanlık

Önizlemeye değil, dosyaya güven. Döndürmeyi dışa aktarımla yap ve kopyada Orientation değerini bir kez oku; ondan sonra fotoğraf tarayıcıda da, küçük görsel üreticisinde de, matbaanın kuyruğunda da dik durur.

Okumaya devam et