Italian Trasparenza immagini

StefanoTag

Active Member
Licensed User
Longtime User
Salve a tutti! Essendo molto poco pratico di trattazione immagini e grafica in generale vi sottopongo una domanda prima ancora di affrontare il problema, in modo da sapere in anticipo se il mio sarà 'tempo sprecato' o meno...
Vi chiedo se è possibile modificare la trasparenza di un'immagine .jpg fino a farla quasi scomparire. Vorrei avere due immagini .jpg sovrapposte l'una all'altra e poter agire su una seekbar in modo far comparire piano piano quella di sopra e far emergere quella di sotto... E' fattibile? C'è qualche esempio per avere uno spunto? Il formato .jpg si presta a questo tipo di azione?
Vi ringrazio in anticipo per l'attenzione
 

StefanoTag

Active Member
Licensed User
Longtime User
Innanzi tutto ti ringrazio per la tua sollecita ed esauriente risposta.
Ho provato velocemente l'esempio che hai postato, però non riesco a capire se l'immagine in primo piano va a sparire perchè aumenta la sua trasparenza o invece perchè sfuma e attenua i suoi colori fino al nero completo. Mi spiego: domani, con più calma, provo a sovrapporre le due immagini e vedere se mentre quella sopra diventa sempre più trasparente, quella di sotto affiora e mostra sempre meglio i suoi contorni (mi rendo conto che sto attorcigliandomi io stesso con le mie parole :eek:). Il problema è che io vorrei comparare le due immagini in modo tale che una delle due si possa vedere con i suoi colori "al naturale", mentre l'altra, sovrapposta alla prima, diventa sempre più trasparente. In poche parole: domani (nei ristretti limiti delle mie competenze) provo a fare qualche modifica al tuo esempio e magari dopo riesco a formulare meglio il mio giudizio. Grazie comunque per l'esempio!
 

Star-Dust

Expert
Licensed User
Longtime User
Innanzi tutto ti ringrazio per la tua sollecita ed esauriente risposta.
Ho provato velocemente l'esempio che hai postato, però non riesco a capire se l'immagine in primo piano va a sparire perchè aumenta la sua trasparenza o invece perchè sfuma e attenua i suoi colori fino al nero completo. Mi spiego: domani, con più calma, provo a sovrapporre le due immagini e vedere se mentre quella sopra diventa sempre più trasparente, quella di sotto affiora e mostra sempre meglio i suoi contorni (mi rendo conto che sto attorcigliandomi io stesso con le mie parole :eek:). Il problema è che io vorrei comparare le due immagini in modo tale che una delle due si possa vedere con i suoi colori "al naturale", mentre l'altra, sovrapposta alla prima, diventa sempre più trasparente. In poche parole: domani (nei ristretti limiti delle mie competenze) provo a fare qualche modifica al tuo esempio e magari dopo riesco a formulare meglio il mio giudizio. Grazie comunque per l'esempio!
Ciao Stefano,
Devi cambiare il valore Alfa di ogni pixel della seconda immagine, sicuramente con l'aiuto di canvas
 

LucaMs

Expert
Licensed User
Longtime User
Ho provato velocemente l'esempio che hai postato
Ed io, velocemente, avevo cercato, senza badare troppo per il sottile. Pardon :(, quel progetto non va bene per il tuo scopo.

Vi chiedo se è possibile modificare la trasparenza di un'immagine .jpg fino a farla quasi scomparire. Vorrei avere due immagini .jpg sovrapposte l'una all'altra e poter agire su una seekbar in modo far comparire piano piano quella di sopra e far emergere quella di sotto
Un modo semplice e veloce ci sarebbe ma non pilotato da una seekbar: sovrapporre due ImageView ed impostare la visibilità (in realtà la trasparenza) di quella al livello superiore usando il metodo:

ImageView1.SetVisibleAnimated

il quale richiede due parametri:
1) la durata dell'animazione - del "fading"
2) se effettuare un "fade in" o un "fade out", ovvero visibile o no.

Se per te non è indispensabile la seekbar ma ti va bene anche impostare una durata relativamente lunga... allego una prova.



Devi cambiare il valore Alfa di ogni pixel della seconda immagine, sicuramente con l'aiuto di canvas
Questo, invece, potrebbe venire pilotato da una seekbar ma non so quanto verrebbe veloce l'animazione, in quanto bisognerebbe prelevare il colore ed il valore alpha (trasparenza) di ogni singolo pixel e diminuire appunto questo valore alpha fino a portarlo a zero.
Più tardi proverò anche questa seconda soluzione, sperando di trovare qualcosa che la renda sufficientemente veloce; per il momento devo preparare il progetto d'esempio precedentemente descritto...

Fatto, primo progettino completato; visto quanto tempo ho impiegato? No, ovviamente, voi ronfate beati :D

Come capirai sicuramente dal codice, premendo il tasto Start, alternativamente l'immagine sovrapposta (ImageView1) "aumenterà o diminuirà la propria visibilità" (la trasparenza).
Per la durata dell'animazione basterà cambiare il valore di mDuration (volendo si può consentire all'utente di modificarlo, aggiungendo una View; EditText, ad esempio).
 

Attachments

  • Fading.zip
    30.5 KB · Views: 338
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Secondo progetto, questo con Seekbar.

Si basa sulla BetterImageView di @Informatix.

Davvero molto semplice:

1) si imposta BetterImageView1.BackgroundBitmap sull'immagine in secondo piano;
2) si imposta BetterImageView1.Bitmap sull'immagine in primo piano;
3) si varia il canale Alpha (BetterImageView1.ChangeAlpha) passandogli il valore della Seekbar (in realtà l'inverso del valore, ovvero 255 - Value).

Allego progetto e libreria.


Bonanotte :D
 

Attachments

  • Fading 2.zip
    30.5 KB · Views: 368
  • BetterImageView lib.zip
    12.1 KB · Views: 320

StefanoTag

Active Member
Licensed User
Longtime User
Di nuovo grazie a LucaMs e a Star-Dust per il loro supporto (...l'ho sempre scritto: per i neofiti, il Forum è l'unica compagnia nel deserto della solitudine delle loro difficoltà ;)). Un grazie doppio a Lucas che posta i suoi preziosissimi esempi alle 3:06AM (probabilmente il giorno lavora e la notte aiuta gli inesperti...resta da capire quando dorme, cerco comunque di "scrivere sottovoce" per non rischiare di svegliarlo). A parte le battute, mi sembra che i due esempi postati, che ho appena provato, risolvono al 100% tutte le mie iniziali problematiche e perplessità. All'inizio sono rimasto un pò fulminato quando il compilatore mi ha dato un errore di significato a me ignoto e al quale ho cercato di porre rimedio commentando una riga di AndroidManifest.xml in modo del tutto intuitivo e senza sapere il significato di quello che stavo facendo (vds immagini allegate)...comunque 'audaces fortuna iuvat' e la cosa ha funzionato!!!
Adesso non mi resta 'solo' da studiare bene gli esempi e provare ad implementarli nel progettino a cui sto lavorando.
 

Attachments

  • Errore iniziale.png
    Errore iniziale.png
    9.8 KB · Views: 361
  • Risoluzione.png
    Risoluzione.png
    17 KB · Views: 359

sirjo66

Well-Known Member
Licensed User
Longtime User
Un grazie doppio a Lucas che posta i suoi preziosissimi esempi alle 3:06AM (probabilmente il giorno lavora e la notte aiuta gli inesperti...resta da capire quando dorme, cerco comunque di "scrivere sottovoce" per non rischiare di svegliarlo)

ottimo Stefano, siamo contenti che tu abbia risolto,
e ti svelo il grande mistero di LucaMs, che ormai noi abbiamo capito da tempo:
LucaMs, di giorno, finchè lavora, dorme :D
 

LucaMs

Expert
Licensed User
Longtime User
cerco comunque di "scrivere sottovoce" per non rischiare di svegliarlo
Avresti dovuto scrivere in corsivo, perché così ho sentito lo stesso :D

All'inizio sono rimasto un pò fulminato quando il compilatore mi ha dato un errore di significato a me ignoto e al quale ho cercato di porre rimedio commentando una riga di AndroidManifest.xml in modo del tutto intuitivo
Questo dipende dal SDK Android che tu hai installato sul tuo pc - vedi menu Tools - Configure Paths. Probabilmente hai una versione inferiore alla 20 (avrai Android-19?).

Dormo 4 ore ogni... quando capita. Purtroppo sono una "cosa" simile ad un esodato; anzi, molto peggio.

Anzi, adesso sono riuscito a dormirne quasi 5, un record!
 

StefanoTag

Active Member
Licensed User
Longtime User
Sì...è vero, ho la versione Android-19...cosa comporta? è troppo vecchia? Mi conviene aggiornarla? Di tutte queste cose ne so meno di zero...
 

LucaMs

Expert
Licensed User
Longtime User
Sì...è vero, ho la versione Android-19...cosa comporta? è troppo vecchia? Mi conviene aggiornarla? Di tutte queste cose ne so meno di zero...
Tutte le app, da adesso (non ricordo la data esatta, forse ottobre) dovranno avere come target version almeno la 26; infatti, se tu nel Manifest file hai questo target impostato ad una versione inferiore, potrai vedere un warning di b4a nella finestra dei logs:
upload_2018-5-16_22-50-4.png


Quindi sì, ti conviene aggiornare:
upload_2018-5-16_22-52-29.png



Cosa comporti, cosa cambi... è storia lunga (perlomeno per me, in questo momento, scusami :))
 
Top