Photoshop'a PNG olarak dışa aktarırken tam saydam piksellerin RGB rengini korumasını nasıl söyleyebilirim?


12

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:

resim açıklamasını buraya girin

Katman maskesi şöyle görünür:

resim açıklamasını buraya girin

Bu PSD dosyasını PNG olarak dışa aktarırsam, şunu elde ederim:

resim açıklamasını buraya girin

(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:

resim açıklamasını buraya girin

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:

resim açıklamasını buraya girin


Yaşadığınız şeyin bir örneğini göstermek daha yararlı olabilir. Temel olarak, PNG'nin şeffaf bölümünde herhangi bir renk bilgisi olmamalıdır. PNG'yi nasıl kaydediyorsunuz? "Web için Kaydet" i kullanıyorsunuz ve "saydamlık" kontrol ediliyor mu? Kulağa basit geldiğini biliyorum ama sonuçlarınızı nasıl aldığınızdan emin değilim.
ErickP

Evet, herhangi bir örnek resim yayınlamadım çünkü sorunu gerçekten göremiyorsunuz (PNG'yi bir boya programına yüklemeden ve saydamlığı kapatmadan), çünkü sorun sadece tamamen şeffaf olan piksellerle ilgili. Bahsettiğim şeyi görselleştirmek için bir yol bulup bulamayacağımı göreceğim.
Walt D

Ancak "PNG'nin saydam bölümünde herhangi bir renk bilgisi olmamalı" derseniz, aslında PNG'nin saydam bölümünde renk bilgisinin olmasını istiyorum . Kulağa tuhaf geldiğini biliyorum, ancak yukarıda bahsettiğim iki uygulama gibi bazı uygulamalar var. (Ve evet, PNG tamamen şeffaf bölgelerinde renk bilgilerini destekler; Prosedürel olarak oluşturulan PNG'lerde her zaman kullanıyorum. Sorun, Photoshop'un şeffaf bölgeleri PNG'lere nasıl kaydettiğidir.)
Walt D

1
@ DA01 Photoshop'un (tek renkli renklere sahip PNG'ler daha az disk alanı kaplıyor) yaptığı ve benim özel kullanım durumumu bozan bir optimizasyon kadar bir hata olduğunu sanmıyorum.
Walt D

1
@ErickP Yardım etmeye çalıştığınız için teşekkürler, gerçekten minnettarım. :) Neyse ki, GPU'lar bugünlerde oldukça standart, ve (çift doğrusal enterpolasyon olarak bilinen) yükseltmeli bu tür yüzden sonunda bulurum ne olursa olsun çözüm, bunların tümünde aynı tam çalışır olmalıdır evrensel çalışır.
Walt D

Yanıtlar:


10

Bir çözüm buldum! SuperPNG eklentisi, " Şeffafı Temizle" seçeneğini işaretlemediğiniz sürece, şeffaf pikseller için RGB değerlerini korur.


SuperPNG'ye eşdeğer bir Photoshop CC olup olmadığını merak ediyorum?
Marcel Wilson
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.