2009-09-03 14 views
17

Sto utilizzando alcuni PNG semitrasparenti come immagini di sfondo su vari siti Web. Di solito sono qualcosa come un'immagine 1x1 con un livello bianco opaco del 30 percento.I PNG trasparenti alfa non vengono visualizzati correttamente in Mobile Safari

Ho notato che Mobile Safari non li visualizza correttamente, dando loro una tinta più scura/grigiastro.

Si tratta di un bug di MobileSafari (non potrei immaginarlo) o devo fare qualcosa di diverso, sia per le mie pagine che per i PNG?

(Ecco come creo i PNG: In Photoshop, creare un 1x1 di tela trasparente Disegna un rettangolo bianco del livello 1. Set opacità, diciamo il 30 per cento, salvare per il web come PNG a 24 bit con la trasparenza..)

+0

Ho notato che questo non è coerente al 100%. Con un solo caricamento, l'ho visto perfettamente renderizzato, fino alla linea dell'80% (dove c'è un'interruzione attraverso la fila 80, grigio scuro sotto quel punto). Quando aggiorno, il problema si presenta nella pagina intera (e le ricariche successive lo mostrano anche rotto). Sto pensando che questo potrebbe essere un bug particolare per il mio iPhone, o è un software.Proverò a riavviare e, in caso contrario, a reinstallare tutto il software (e in caso contrario, ottenere un nuovo telefono :)). – worksology

+0

I collegamenti sono morti:/ – Will

+1

Chiuso come troppo localizzato? Divertente. Questo è generalmente applicabile e, più di 3 anni dopo, è ancora al 100% rilevante con iOS 6 Mobile Safari. –

risposta

72

Stavo cercando di fare qualcosa semplici sfondi DIV che utilizzano un PNG a 1 pixel con trasparenza parziale per creare una casella traslucida per un testo sopra un'immagine di sfondo. Sembrava fantastico in tutti i tipi di browser, fino a quando non ho provato l'iPhone. Stava facendo la trasparenza parziale, ma con questa strana sfumatura grigiastra parli dei risultati attesi.

Ho quindi provato quelli collegati blu rosso & test. Entrambi hanno un bell'aspetto la prima volta che li ho visti, quindi il refresh li ha fatti diventare greyish! Ho provato di nuovo con una nuova finestra del browser ed è tornato a sembrare corretto, ahh l'incoerenza che hai menzionato colpisce ancora. Bene, allora ho appena ruotato l'iPhone con il phyisc e, passando dalla modalità orizzontale a quella verticale, i colori sono passati alle versioni grigiastre!

Tutti i test di trasparenza parziale del W3C PNG erano perfetti su iPhone. Tuttavia, ha fallito il test Gamma. Dopo aver escluso la gamma come possibile causa, l'ho cacciata per ore, ma non ho ottenuto nulla. Ho persino creato un gradiente tutto mio da 0 a 100% trasparente per assicurarmi che non fosse il mio processo di creazione dell'immagine. Abbastanza sicuro, ha funzionato perfettamente, quindi il mio processo è buono.

Poi ho avuto questo colpo di genio, e se il file fosse più grande di 1 pixel? Quindi l'ho reso largo 2 pixel e alto 1 pixel, trasparente al 20% (alfa dell'80%). Bam..it ha funzionato! Ho provato tutti i tipi di combinazioni di 1x1, 1x2, 2x1, 2x2, 8x8. Tutti hanno funzionato correttamente, tranne per la versione a pixel singolo.

Sono tornato indietro e ho controllato i test collegati sopra, e vedo che usano 1 immagine pixel per tutte le sfumature. Ah ah!

E il gioco è fatto, Mobile Safari ha bisogno di almeno 2 pixel con cui lavorare per i file PNG semitrasparenti.

0

Dopo aver visto i siti su entrambi i dispositivi (il mio Mac e il mio iPod Touch), penso che quello che vedete qui è una differenza in che colori possono produrre gli schermi piuttosto che un bug in entrambi i motori di rendering. Ci sono molti fattori che possono andare in questo tipo di differenza, ad esempio, il contrasto nel display portatile potrebbe non essere così grande nel tentativo di risparmiare energia, rendere il dispositivo più economico, ecc.

3

Utilizzare un'immagine con dimensioni diverse da 1x1.

(Risposta abbreviata per coloro che hanno cose da fare)

Problemi correlati