JavaFX traduce male i colori???

di il
6 risposte

JavaFX traduce male i colori???

Salve ragazzi, stavo provando delle cose con javaFX e ho notato che l'immagine caricata con javaFX ha dei colori più saturati di quella originale. Forse dipende da come legge e traduce javaFX le immagini; posso modificare questa saturazione e renderla uguale all'originale? Vi mostro un esempio!

http://oi67.tinypic.com/1zg3xhh.jp

(la foto era troppo grande e non me la faceva caricare)

6 Risposte

  • Re: JavaFX traduce male i colori???

    KILLERIX ha scritto:


    Salve ragazzi, stavo provando delle cose con javaFX e ho notato che l'immagine caricata con javaFX ha dei colori più saturati di quella originale. Forse dipende da come legge e traduce javaFX le immagini; posso modificare questa saturazione e renderla uguale all'originale?
    È probabile che non riesca a dare una soluzione concreta, non essendo ancora ferratissimo su Java FX. Però bisognerebbe prima valutare delle cose. Innanzitutto con quale API viene caricata la immagine (mostra del codice, magari). E seconda cosa, vedere effettivamente come è fatta tecnicamente la immagine: jpeg? png? altro? Se ben ricordo, nei png c'è la possibilità di avere un "chunk" particolare che descrive il color "gamma" ... magari si tratta di questo che in un caso viene rispettato e nell'altro no. ... Non saprei.

    La problematica dei colori è ampia e potrebbe non essere "banale".
  • Re: JavaFX traduce male i colori???

    Questo è il codice. Del chunk di un png non ne sapevo nulla. Forse è proprio quello... non lo so ma sono curioso di scoprire come javafx decide la gamma dei colori di un png e come gestisce anche i singoli pixel!
  • Re: JavaFX traduce male i colori???

    Dal codice si deduce che la API usata per il caricamento è quella della Image di JavaFX. Quindi nulla di strano, ok anche l'uso delle "risorse".

    L'unica cosa a cui posso pensare è appunto la questione del "gamma correction", che esiste nel formato PNG. Il PNG è fatto a "chunk", ovvero blocchi di dati ben marchiati come tipo, lunghezza e con un CRC (Cyclic Redundancy Check) finale di sicurezza nel blocco. Ci sono chunk obbligatori e altri opzionali. Il chunk del gamma correction è opzionale. Un software potrebbe rispettarlo o ignorarlo.

    Non ho modo adesso di fare delle prove (e non ho un Mac). Leggi magari: http://jonathannicol.com/blog/2006/12/01/fixing-png-gamma/

    Ci sono tools per ottimizzare i png e rimuovere i chunk non strettamente necessari. Fai qualche prova. Se aveva e riesci a togliere il gamma correction, riprova come hai fatto vedere nelle 2 immagini affiancate.
  • Re: JavaFX traduce male i colori???

    Per fugare il dubbio che il problema sia dovuto all'immagine png, senza aver tools avanzati, prova a salvare in formato jpeg e caricare il file .jpg così ottenuto (oppure bmp).
    Se il jpg (o bmp) rimane tale e quale allora il problema è nel png, altrimenti il png non c'entra e il problema è da un'altra parte.
    Se il problema è il png puoi banalmente salvarlo come bmp, poi riaprire il bmp e salvare in png.
  • Re: JavaFX traduce male i colori???

    Niente, sempre lo stessa gamma di colori. Credo siano le API di JavaFX che gestiscono a loro piacimento i valori delle immagini!
  • Re: JavaFX traduce male i colori???

    KILLERIX ha scritto:


    Niente, sempre lo stessa gamma di colori. Credo siano le API di JavaFX che gestiscono a loro piacimento i valori delle immagini!
    Hai provato a rimuovere i chunk opzionali (e il gamma correction) del png? Perché se hai convertito il png in es. jpg/bmp e il software che hai usato rispetta il gamma correction del png, potresti non aver cambiato nulla.
Devi accedere o registrarti per scrivere nel forum
6 risposte