Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Script conversione colori Safeweb

    Ciao a tutti,
    dovrei creare una funzione che converte i colori di una immaigne in esadecimale nei valori safeweb per i browser.
    Mi potreste indicare qualche strada per realizzare questa procedura? è necessario memorizzare i valori safe in un vettore? L'associazione tra gli esadecimali e successiva la sostituizione avviene semplicemente sostituendo un colore con il più vicino nella tabella di quelli safe web?

    Grazie

    Giovanni

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Script conversione colori Safeweb

    Originariamente inviato da erpupone10
    dovrei creare una funzione che converte i colori di una immaigne in esadecimale nei valori safeweb per i browser.
    Immagino che tu stia parlando della "famosa" palette di 216 colori definita storicamente "web safe".

    http://en.wikipedia.org/wiki/Web_colors#Web-safe_colors

    Giusto?

    Originariamente inviato da erpupone10
    Mi potreste indicare qualche strada per realizzare questa procedura? è necessario memorizzare i valori safe in un vettore? L'associazione tra gli esadecimali e successiva la sostituizione avviene semplicemente sostituendo un colore con il più vicino nella tabella di quelli safe web?
    Quindi tu hai una immagine (ad esempio un oggetto BufferedImage) true-color (24 bit almeno) e vuoi ottenere una immagine che usa solo quei colori web safe.

    Per farlo è possibile ma bisogna vedere quale tecnica di riduzione dei colori vuoi usare. Cioè se vuoi usare una tecnica "nearest color" (il colore più vicino) o un altro tipo di quantizzazione.

    Trovare il valore più vicino nella palette web safe è abbastanza facile. I colori sono 216, per ognuno dei 3 canali R, G, e B ci sono solo 6 gradazioni. Appunto 6 * 6 * 6 = 216.
    Quindi dato un valore RGB a 24 bit, ricavare l'equivalente web safe è facile, perché per ognuno dei 3 canali ti basta calcolare la gradazione safe più vicina.

    Così a occhio direi che si può fare:

    R_safe = ((R_nonsafe + 25) / 51) * 51;

    (idem per G/B, la divisione deve essere "intera")

    Ma potresti anche realizzare una piccola lookup table di 256 valori, magari generata a runtime all'inizio.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Ciao,
    hai proprio azzeccato l'argomento che mi interessava, si volevo realizzare la palette con i 216 websafe colors.
    non utilizzo una bufferedImage ma un oggetto ImageAccess oppure ColorProcessor, FloatProcessor, o ByteProcessor a seconda del tipo di immagine che sto processando. Questi oggetti son messi a disposizione dal package ImageJ.

    Però quello che mi interessava era proprio una relazione che mi permettesse di ricavare da un colore il rispettivo websafe..ed è proprio quella che mi hai indicato tu!!

    Però il mio altro quesito o dubbio riguardava il concetto che hai accennato dopo cioè la generazione run - time della palette, alla fine non mi serve neppure generarla la palette ma sostituisco direttamente i colori trovati nell'immagine, questo lo posso fare perchè la palette è statica..
    Se invece volessi implementare una codifica adattiva allora la palette sarebbe generata in base alla frequenza dei colori presenti nell'immagine e lì si che dovrei, generando dinamicamente la palette, salvarmela in un array e comunicarla anche al decompressore che altrimenti non saprebbe i colori utilizzati...

    (P.S. avevo omesso che sto realizzando un progettino che permetta la codifica GIF delle immagini secondo diversi criteri di ottimizzazione)

    Grazie mille..

    se avrò bisogno mi farò risentire

    ciao

    Giovanni

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.