Photoshop'un PNG olarak dışa aktarırken tamamen saydam pikselleri nasıl işlediği ile ilgili bir sorun yaşıyorum, bu da tamamen saydam piksellerin kırmızı, yeşil ve mavi renk kanallarının Photoshop'ta tanımladığım renk yerine 0 olarak kaydedilmiş olması .
Örneğin: Katman maskeli bir PSD dosyam var. Görüntünün bazı renkli kısımları katman maskesi tarafından tamamen şeffaf hale getirilir, ancak orijinal renk kanallarının PNG dosyasına yalnızca 0 yerine yazılmasını istiyorum.
(Evet, PNG biçiminde kendisini yok bile tam olarak saydam pikseller için RGB verileri içerir. Bu Photoshop değil, PNG ile bir sorundur.)
Bir piksel tamamen şeffaf olduğunda renk verilerinin neden önemli olduğunu merak ediyorsanız , işte birkaç kullanım örneği:
- PNG kaydedildiği değerden daha yüksek bir çözünürlükte örneklenir ve örneklenen değerler komşu pikseller arasında enterpole edilir. İnterpolasyon saydamlık tarafından tartılmazsa, bu, görüntünün etrafında soluk bir siyah "hale" ile sonuçlanabilir. (Benim durumumda, bu yukarı örnekleme GPU'da yapılıyor, bu da performans nedenlerinden ötürü şeffaflıkla tartılmıyor.)
- PNG dosyasındaki kırmızı, yeşil, mavi ve alfa kanalları renk bilgilerini depolamaktan başka amaçlar için kullanılıyor. (Benim durumumda, gerçek zamanlı aydınlatma hesaplamaları için gerekli verileri depolamak için dört kanalın hepsini kullanıyorum.)
Yardımın için teşekkürler!
DÜZENLE
Bazı görsel yardımcıların kullanımıyla ilgili yaşadığım sorunu açıklamaya çalışacağım. Şeffaf şeyler göstermek zordur, ancak umarım bu sorunumu daha net hale getirir:
Bir katman ve katman maskesi ile bir PSD dosyası var. Renk katmanı şöyle görünür:
Katman maskesi şöyle görünür:
Bu PSD dosyasını PNG olarak dışa aktarırsam, şunu elde ederim:
(Beyaz bölgeler gerçekten şeffaftır; sadece beyaz arka plana karşı beyaz görünürler.)
Merak ediyor olabilirsiniz: Sorun nedir? Doğru görünüyor! Sorun, bu saydam piksellerde saklanan renk bilgileriyle ilgili. RGB'yi olduğu gibi bırakarak opaklık verilerini PNG'den çıkarmak için bir araç kullanarak Photoshop'un saydam piksellere kaydettiği renk bilgilerini görebiliriz:
Gördüğünüz gibi, Photoshop şeffaf piksellerdeki renk bilgilerini siyahla değiştirdi. Oysa, PNG'den opaklık verileri kaldırıldığında, orijinal renk katmanına tam olarak benzemesini istiyorum: