Come faccio a dire a Photoshop di preservare il colore RGB dei pixel completamente trasparenti quando esporto come PNG?


12

Sto riscontrando un problema con il modo in cui Photoshop gestisce i pixel completamente trasparenti quando si esporta come PNG, ovvero che i canali di colore rosso, verde e blu di tutti i pixel completamente trasparenti vengono salvati come 0 anziché il colore che definisco in Photoshop .

Ad esempio: ho un file PSD con una maschera di livello. Alcune parti colorate dell'immagine sono rese completamente trasparenti dalla maschera di livello, ma voglio comunque che i canali di colore originali vengano scritti nel file PNG anziché solo 0.

(Sì, il formato PNG in sé non contiene i dati RGB anche per pixel completamente trasparenti. Questo è un problema con Photoshop, non PNG.)

Se ti stai chiedendo perché avere dati a colori è importante quando un pixel è completamente trasparente, ecco un paio di casi d'uso:

  • Il PNG viene campionato a una risoluzione più alta rispetto a quando viene salvato e i valori campionati vengono interpolati tra i pixel vicini. Ciò può comportare un leggero "alone" nero attorno all'immagine se l'interpolazione non è ponderata dalla trasparenza. (Nel mio caso, questo up-sampling viene eseguito sulla GPU, che per motivi di prestazioni non pesa per la trasparenza.)
  • I canali rosso, verde, blu e alfa nel file PNG vengono utilizzati per scopi diversi dalla memorizzazione delle informazioni sul colore. (Nel mio caso, utilizzo tutti e quattro i canali per memorizzare i dati necessari per i calcoli dell'illuminazione in tempo reale.)

Grazie per l'aiuto!

MODIFICARE

Proverò a spiegare il problema che sto riscontrando con l'uso di alcuni ausili visivi. Mostrare cose trasparenti è difficile, ma speriamo che questo chiarisca il mio problema:

Ho un file PSD con un livello e una maschera di livello. Il livello di colore è simile al seguente:

inserisci qui la descrizione dell'immagine

La sua maschera di livello è simile alla seguente:

inserisci qui la descrizione dell'immagine

Se esporto questo file PSD come PNG, ottengo questo:

inserisci qui la descrizione dell'immagine

(Le regioni bianche sono davvero trasparenti; sembrano solo bianche contro lo sfondo bianco.)

Ti starai chiedendo: qual è il problema? Sembra giusto! Bene, il problema è con le informazioni sul colore memorizzate in quei pixel trasparenti. Usando uno strumento per rimuovere i dati di opacità dal PNG lasciando intatto il RGB, possiamo vedere le informazioni sul colore che Photoshop salva nei pixel trasparenti:

inserisci qui la descrizione dell'immagine

Come puoi vedere, Photoshop ha sostituito le informazioni sul colore nei pixel trasparenti con il nero. Considerando che, con i dati di opacità rimossi dal PNG, voglio che assomigli esattamente al livello di colore originale:

inserisci qui la descrizione dell'immagine


Mostrare un esempio di ciò che stai vivendo potrebbe essere più utile. Principalmente perché, non dovrebbero esserci informazioni sul colore nella parte trasparente del PNG. Come stai salvando il PNG? Stai utilizzando "Salva per Web" e hai la "trasparenza" selezionata? So che sembra semplice ma non sono sicuro di come stai ottenendo i risultati.
ErickP

Sì, non ho pubblicato alcuna immagine di esempio perché non puoi effettivamente vedere il problema (senza caricare il PNG in un programma di disegno e disattivare la trasparenza), poiché il problema è solo con pixel completamente trasparenti. Vedrò se riesco a trovare un modo per visualizzare di cosa sto parlando.
Walt D,

Ma quando dici "non dovrebbero esserci informazioni sul colore nella parte trasparente del PNG", in realtà voglio che ci siano informazioni sul colore nella parte trasparente del PNG. So che suona strano, ma ci sono alcune applicazioni, come le due che ho menzionato sopra. (E sì, PNG supporta totalmente le informazioni sul colore nelle sue regioni trasparenti; le uso sempre nei PNG generati proceduralmente. Il problema è con come Photoshop salva le regioni trasparenti in PNG.)
Walt D

1
@ DA01 Non penso che sia un bug tanto quanto un'ottimizzazione di Photoshop (i PNG con colori uniformi occupano meno spazio su disco) che sta rompendo il mio caso d'uso particolare.
Walt D,

1
@ErickP Grazie per aver cercato di aiutare, lo apprezzo molto. :) Per fortuna, le GPU sono abbastanza standard in questi giorni e questo tipo di upscaling (noto come interpolazione bilineare) funziona esattamente allo stesso modo su tutte, quindi qualsiasi soluzione trovo alla fine dovrebbe funzionare universalmente.
Walt D,

Risposte:


10

Ho trovato una soluzione! Il plugin SuperPNG manterrà i valori RGB per i pixel trasparenti fino a quando l'opzione "Pulisci trasparente" non è selezionata.


Sono curioso di sapere se esiste un Photoshop CC equivalente a SuperPNG?
Marcel Wilson,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.