Italian Trasparenza immagini

Discussion in 'Italian Forum' started by StefanoTag, May 15, 2018.

  1. StefanoTag

    StefanoTag Active Member Licensed 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
     
  2. LucaMs

    LucaMs Expert Licensed User

    Essendo pigro ma molto amichevole :), ho cercato e modificato leggermente un esempio trovato.

    Puoi migliorarlo parecchio ed usare una seekbar anziché un timer.
     

    Attached Files:

  3. StefanoTag

    StefanoTag Active Member Licensed 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!
     
    LucaMs likes this.
  4. LucaMs

    LucaMs Expert Licensed User

    Ti risponderò stanotte :( o al massimo domattina.
     
  5. Star-Dust

    Star-Dust Expert Licensed User

    Ciao Stefano,
    Devi cambiare il valore Alfa di ogni pixel della seconda immagine, sicuramente con l'aiuto di canvas
     
  6. LucaMs

    LucaMs Expert Licensed User

    Ed io, velocemente, avevo cercato, senza badare troppo per il sottile. Pardon :(, quel progetto non va bene per il tuo scopo.

    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.



    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).
     

    Attached Files:

    Last edited: May 16, 2018
  7. LucaMs

    LucaMs Expert Licensed 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
     

    Attached Files:

  8. StefanoTag

    StefanoTag Active Member Licensed 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.
     

    Attached Files:

    LucaMs and Star-Dust like this.
  9. sirjo66

    sirjo66 Well-Known Member Licensed User

    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 and Star-Dust like this.
  10. StefanoTag

    StefanoTag Active Member Licensed User

    :D:D:D:D
     
    LucaMs likes this.
  11. LucaMs

    LucaMs Expert Licensed User

    Avresti dovuto scrivere in corsivo, perché così ho sentito lo stesso :D

    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!
     
  12. StefanoTag

    StefanoTag Active Member Licensed User

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

    LucaMs Expert Licensed User

    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 :))
     
  14. StefanoTag

    StefanoTag Active Member Licensed User

    Obbedisco!
     
    LucaMs likes this.
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice