Autore Topic: colormatrix e saturazione  (Letto 728 volte)

Offline frecciak

  • Utente normale
  • ***
  • Post: 231
  • Respect: +16
    • Mostra profilo
  • Dispositivo Android:
    galaxy s
  • Sistema operativo:
    windows 7
colormatrix e saturazione
« il: 30 Marzo 2012, 15:52:50 CEST »
0
con varie seekbar gestisco tinta,contrasto e luminosita di una immagine..
per farlo utilizzo questo:
Codice (Java): [Seleziona]
ColorMatrix cm = new ColorMatrix();

 
            cm.set(new float[] {
                        rr, 0, 0, 0, brightness,
                        0,gg, 0, 0, brightness,
                        0, 0, bb, 0,brightness,
                        0, 0, 0, 1, 0,
                        0, 0, 0, 0, 1});
il problema è che non riesco a gestire la saturazione..
ho provato a inserirla in questo modo:
Codice (Java): [Seleziona]
ColorMatrix cm = new ColorMatrix();

            cm.setSaturation(valuesat);

            cm.set(new float[] {
                        rr, 0, 0, 0, brightness,
                        0,gg, 0, 0, brightness,
                        0, 0, bb, 0,brightness,
                        0, 0, 0, 1, 0,
                        0, 0, 0, 0, 1});
ma non ne tiene conto, perchè android 'vede' solo il comando cm.set ...invece se metto il comando cm.setSaturation senza mettere cm.set, funziona benissimo..
avete idea se è possibile gestire la saturazione dal cm.set come si fa con colore, luminosità e contrasto?
se non è possibile, come posso fare in modo che android mi utilizzi sia il set che il setSaturation?
Se le risposte ti hanno aiutato, metti un ..a te non costa nulla, ma a chi ti ha aiutato fa molto piacere riceverlo!!

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:colormatrix e saturazione
« Risposta #1 il: 30 Marzo 2012, 17:37:38 CEST »
+1
Android è open source, qui c'è il sorgente di ColorMatrix:

https://github.com/android/platform_frameworks_base/blob/master/graphics/java/android/graphics/ColorMatrix.java

Il primo errore: ColorMatrix vuole un array di 5x4 = 20 elementi tu usi un array di 5x5 = 25 elementi.

Non ho ben capito che calcoli ti sei inventato ma la saturazione aggiunge un grigio mantenendo la luminanza, guarda i sorgenti del metodo "setSaturation". Il metodo "set" distrugge (ovviamente) la matrice impostata dal primo metodo "setSaturation".
adb logcat | tee /tmp/logcat | grep TAG

Offline frecciak

  • Utente normale
  • ***
  • Post: 231
  • Respect: +16
    • Mostra profilo
  • Dispositivo Android:
    galaxy s
  • Sistema operativo:
    windows 7
Re:colormatrix e saturazione
« Risposta #2 il: 31 Marzo 2012, 20:06:56 CEST »
0
grazie, ora mi guardo per bene come lavora e provo a trovare una soluzione
Se le risposte ti hanno aiutato, metti un ..a te non costa nulla, ma a chi ti ha aiutato fa molto piacere riceverlo!!