Ultra HDR resim biçimi, cihazların daha parlak ve daha yoğun renkli resimler göstermesini sağlayan parlaklık bilgilerini kodlar. Uygulamanız bir Ultra HDR resmini düzenlerken bu parlaklık bilgilerinin korunduğundan emin olmak istersiniz. Kullanıcının cihazı Ultra HDR resmini tam yoğunlukta göstermeyi desteklemese bile bu önemlidir. Kullanıcı, resmini Ultra HDR'yi destekleyen bir cihaza sahip biriyle paylaşabilir veya resmi kaydedip yıllar sonra yeni bir cihazda tekrar görüntüleyebilir.
Neyse ki bitmap düzenlemeye yönelik çoğu Android yöntemi Ultra HDR resim biçimini destekler. Bir resimde kırpma veya döndürme gibi temel düzenlemeler yapıyorsanız standart Android yöntemleri işe yarar. Bu yöntemler sayesinde yeni boyutlara veya yönde ultra HDR resim elde edebilirsiniz.
Resmin içeriğini değiştiriyorsanız iş daha da zordur. Bu durumlarda, standart düzenleme yöntemleri eski resmin parlaklık bilgilerini korur. Bu, istediğiniz sonuç olmayabilir. Bu gibi durumlarda, doğru sonucu elde etmek için kazanç haritasını (görüntünün parlaklık bilgilerini kodlayan) düzenlemeniz veya kaldırmanız gerekebilir.
Ultra HDR biçimine genel bakış
Ultra HDR resim biçimi, Ultra HDR resim spesifikasyonunda ayrıntılı olarak açıklanmaktadır. Ultra HDR resimlerin hem birincil resim hem de güçlendirme haritası içerdiğini bilmek önemlidir.
- Birincil resim, resmin her pikseli için renk bilgilerini içerir.
- Kazanç haritası, birincil resimle aynı oranlara sahip standart bir JPEG resimdir ancak piksel boyutları aynı olmayabilir. Kazanç haritasının her pikseli, birincil görüntünün ilgili kısmının parlaklığını belirtir.
Kazanç haritası gri tonlamalı veya renkli olabilir. Kazanç haritası renkliyse kazanç haritasındaki her renk kanalı, birincil görüntünün ilgili kısmındaki ilgili renk kanalının parlaklığını belirtir. Kazanç haritası gri tonlamalıysa kazanç haritasının her pikseli, birincil görüntünün ilgili kısmındaki üç renk kanalının ışığını belirtir.
Kazanç haritası, birincil resimle aynı oranlara sahip olmalıdır ancak aynı piksel boyutlarına sahip olması gerekmez. Android platformu Ultra HDR görüntüler oluştururken birincil görüntüden daha küçük genişlik ve yüksekliğe sahip bir kazanç haritası oluşturur. Bu sayede dosya boyutu önemli ölçüde küçültülür ancak iyi bir sonuç elde etmek için yeterli bilgi kodlanır. Bu, kazanç haritasındaki her pikselin birincil görüntüdeki birkaç pikselin parlaklık bilgilerini depolayabileceği anlamına gelir.
Temel Ultra HDR düzenlemeleri
Ultra HDR resimde temel dönüşümler yapmak için Android Bitmap
API'lerini kullanırsanız yöntemler, kazanç haritasında uygun değişiklikleri yapar. Aşağıdaki Bitmap
işlemleri desteklenir:
- Döndür: Ultra HDR resmini döndürdüğünüzde yöntem, kazanç haritasını da döndürür.
- Kırpma: Ultra HDR görüntüyü kırptığınızda yöntem, kazanç haritasını uygun şekilde kırpar.
- Ölçek: Bir Ultra HDR resmini ölçeklendirirseniz yöntem, kazanç haritasını yeniden boyutlandırılmış birincil resmin yarısı genişliğinde ve yarısı yüksekliğinde olacak şekilde ölçeklendirir.
Her durumda parlaklık bilgileri korunur.
Gelişmiş Ultra HDR düzenlemeleri
Ultra HDR görüntüde daha ayrıntılı düzenlemeler yaparsanız kazanç haritası değişmeden korunur. Bu da istediğiniz sonuçları almanıza engel olabilir.
Bu duruma neden olabilecek yaygın düzenlemeler şunlardır:
- Çıkartma veya emoji ekleme: Eklenen çıkartma, yapıştırıldığı alanla aynı parlaklık ve renk canlılığı değerlerine sahip olur.
- İkinci bir resmin üzerine yerleştirilmesi: Yeni resim, üzerine yerleştirildiği içeriğin parlaklığı ve renk canlılığı bilgilerini kullanır.
- Filtre ekleme: Eski kazanç haritasının bilgileri, değiştirilmiş birincil resim için uygun olmayabilir.
Her durumda eski parlaklık ve renk canlılığı bilgileri korunur ancak değiştirilen resim için uygun olmayabilir.
Orijinal kazanç haritası, düzenlenmiş resim için uygunsa herhangi bir işlem yapmanız gerekmez. Kazanç haritasını değiştirmek istiyorsanız normal iş akışı şu şekildedir:
Bitmap.getGainmap()
işlevini çağırarak görüntünün mevcut kazanç haritasını alın ve önbelleğe alın.- Birincil resmi istediğiniz gibi değiştirin.
Önbelleğe alınmış kazanç haritasında ilgili düzenlemeleri yapın. Örneğin, birincil resme bir emoji yapıştırdıysanız kazanç haritasının ilgili bölümünü
Color.GRAY
gibi nötr bir değere ayarlayabilirsiniz.Bitmap.setGainmap()
işlevini çağırarak değiştirilen kazanç haritasını resme tekrar uygulayın.
Ek kaynaklar
Ultra HDR resimler hakkında daha fazla bilgi edinmek için aşağıdaki ek kaynaklara bakın: