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 görüntüsünü düzenlediğinde parlaklık bilgilerinin korunmasını sağlamak istersiniz. Bu, kullanıcının cihazı Ultra HDR görüntüyü tam yoğunlukta göstermeyi desteklemiyorsa bile önemlidir. Kullanıcı, fotoğrafını Ultra HDR'yi destekleyen bir cihazı olan biriyle paylaşabilir veya fotoğrafı kaydedip yıllar sonra yeni bir cihazda tekrar görüntüleyebilir.
İyi haber şu ki, bit eşlemleri 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. Yeni boyutlara veya yöne sahip bir ultra HDR resmi elde edersiniz.
Resmin içeriğini değiştiriyorsanız işiniz daha zordur. Bu gibi durumlarda, standart düzenleme yöntemleri eski görüntünün parlaklık bilgilerini korur. Bu, istediğiniz bir durum olmayabilir. Bu gibi durumlarda, doğru sonucu elde etmek için kazanç haritasını (görüntünün parlaklık bilgilerini kodlar) 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. Anlaşılması gereken en önemli nokta, Ultra HDR resimlerin hem birincil resim hem de kazanç haritası içerdiğidir.
- Birincil resim, resmin her pikselinin renk bilgilerini içerir.
- Kazanç haritası, birincil resimle aynı orantılara sahip standart bir JPEG resmidir ancak piksel boyutları aynı olmayabilir. Kazanç haritasının her pikseli, birincil görüntünün ilgili bölümünün parlaklığını belirtir.
Kazanç haritası, gri tonlamalı veya renkli olabilir. Kazanç haritası renkliyse kazanç haritasındaki her renk kanalı, birincil resmin ilgili bölümündeki renk kanalının parlaklığını belirtir. Kazanç haritası gri tonlamalıysa kazanç haritasının her pikseli, birincil resmin o bölümündeki üç renk kanalının parlaklığını belirtir.
Kazanç haritası, birincil resimle aynı orantılara sahip olmalıdır ancak aynı piksel boyutlarına sahip olması gerekmez. Hatta Android platformu Ultra HDR görüntüleri 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üçülür ancak yine de iyi bir sonuç 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
Android Bitmap
API'lerini kullanarak Ultra HDR resimde temel dönüşümler yaparsanız yöntemler, kazanç haritasında uygun değişiklikleri yapar. Aşağıdaki Bitmap
işlemleri desteklenir:
- Döndürme: Ultra HDR görüntüyü 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 görüntüyü ölçeklendirirseniz yöntem, kazanç haritasını yeniden boyutlandırılan birincil görüntünün genişliğinin ve yüksekliğinin yarısı olacak şekilde ölçeklendirir.
Her durumda parlaklık bilgisi korunur.
Gelişmiş Ultra HDR düzenlemeleri
Ultra HDR görüntüsünde daha ayrıntılı düzenlemeler yaparsanız kazanç haritası değişmeden kalır. Bu durum, istediğiniz sonuçları vermeyebilir.
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 resmi yerleştirme: Yeni resim, yerleştirildiği içeriğin parlaklık ve renk canlılığı bilgilerini kullanır.
- Filtre ekleme: Eski kazanç haritasının bilgileri, değiştirilen birincil resim için uygun olmayabilir.
Her durumda eski parlaklık ve renk canlılığı bilgileri korunur ancak bu bilgiler değiştirilen resim için uygun olmayabilir.
Orijinal kazanç haritası, düzenlenen resim için uygunsa herhangi bir işlem yapmanız gerekmez. Kazanç haritasını değiştirmek istiyorsanız normal iş akışı şöyledir:
Bitmap.getGainmap()
işlevini çağırarak görüntünün mevcut kazanç haritasını getirin 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, bir emojiyi birincil resme yapıştırdıysanız kazanç haritasının ilgili bölümünü
Color.GRAY
gibi nötr bir değere ayarlayabilirsiniz.Değiştirilen kazanç haritasını
Bitmap.setGainmap()
çağırarak resme tekrar uygulayın.
Ek kaynaklar
Ultra HDR resimler hakkında daha fazla bilgi edinmek için aşağıdaki ek kaynaklara bakın: