2010-10-18 4 views

risposta

10

È necessario utilizzare il dithering. Floyd-Steinberg è un buon algoritmo semplice e veloce.

Non è necessario passare a 8 bit per pixel come suggerito da un'altra risposta, è possibile passare direttamente a 16 bit per pixel. Devi sapere come è suddiviso in R/G/B prima di iniziare.

Ecco alcuni esempi, primo piano è l'originale 24 bit:

alt text

successivo è un 16-bit senza dithering:

alt text

Infine 16 bit con Dithering di Floyd-Steinberg.

alt text

P.S. L'ho fatto con Paint Shop Pro, non so se Photoshop ha qualcosa di simile. Puoi farlo anche in codice.

+1

Grazie, questo è esattamente ciò di cui avevo bisogno! Qualcuno sa come ottenere ciò con Photoshop e farlo salvare correttamente? –

+1

@Jamey, sembra un'eccellente domanda ... non uno per questo forum, temo. Se mi annoio potrei creare uno script Python per farlo, ma sarà nel mio tempo libero e non lo sarà presto. ImageMagick potrebbe anche essere in grado di farlo con uno switch '-depth 5'. –

+1

@Jamey, puoi sicuramente convertire in 16 bit in Photoshop, ma non so se applica il dithering. http://forums.adobe.com/message/1904192 –

3

La soluzione è di non utilizzare le sfumature direttamente.
Non c'è modo di aggirare questo con i colori supportati dal dispositivo.

L'alternativa è quella di creare un'immagine retinata e utilizzarla.

+0

sono i downvotes perché non è quello che la gente vuole sentire? O c'è un'altra soluzione? –

+1

Probabilmente perché non è quello che la gente vuole sentire. Preferiscono che tu spazzi software magico - polvere fatata e che aggiusti il ​​loro hardware con 2 linee di codice. – ctacke

0

Se si imposta la modalità su 8 bit e dithering utilizzando la "tavolozza web", ciò crea un risultato piuttosto buono. Questo è MOLTO meglio rispetto all'immagine a banda. Comunque probabilmente finirò con 2 versioni dell'immagine di sfondo. Uno per 16 bit e uno per 24 bit e oltre.