Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Linusss
    Registrato dal
    Sep 2002
    Messaggi
    405

    Lentezza gestire trasparenze

    Raga ho notato che se disegno un rettangolo translucente, quindi con un canale alpha e non completamente trasparente o opaco, c'è un calo dei frames pauroso.
    Lo stesso rettangolo se lo disegno con un colore senza canale alpha non provoca rallentamenti.
    Stesso discorso vale se carico immagini da file, se le immagini sono trasparenti, come le png, c'è un calo vistoso dei frames, nonostante io le renda accelerate con createCompatibleImage.
    Il fatto è che mi serve assolutamente la possibilita di utilizzare immagini translucenti, in quanto devo simulare l'effetto dell'acqua, in 2d naturalemente.

    Avete qualche idea su cosa posso fare?
    In rete ho letto che è risaputa sta cosa, e che si può abilitare l'accelerazione hardware anche delle immagini translucenti(di defoult è disattivata), ma se l'attivo mi va ancora più a scatti!
    Altri mezzi ce ne sono?

  2. #2
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    ciao linusss io non ho la soluzione per il tuo problema, ma volevo chiederti il favore di postare un link o qualche consiglio per inserire il canale alfa nella creazione dei frame,avevo postato una richiesta su questo forum...ma nessuno aveva saputo rispondermi.
    Grazie!

  3. #3
    Utente di HTML.it L'avatar di Linusss
    Registrato dal
    Sep 2002
    Messaggi
    405
    Ciao, in che senso nella creazione dei frame? Se intendi che vuoi creare un JFrame trasparente penso che non sia possibile, xkè nonostante il jframe sia un jcomponent, quindi ne possiede tutte le caratteristiche, come la leggerezza(light weight), include al suo interno un compinente windows che fa parte dei vekki tipi, componenti pesanti(havy weight) il quale non è possibile renderlo trasparante.
    Credo che con qualche trucco si possa comunque fare, tipo baipassare il jframe utilizzando un jpanel ma non ne sono sicuro, e comunque non mi sono mai interessato alla cosa.
    Se ti interessa invece disegnare una figura con il canale apha ci sono vari metodi.

    Ad esempio setti il riferimento grafico del buffer o del jcomponent all'interno del quale vuoi disegnare con un colore trasparente: g2.setColor(new Color(0,0,0,50)); è un nero semi trasparente,traslucido.
    Oppure utilizzando le composizioni g2.setComposite(); o caricare da file immagini png o gif con già le trasparenze.
    Ci sono varie strade insomma.

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465

    Moderazione

    Originariamente inviato da energie
    ciao linusss io non ho la soluzione per il tuo problema, ma volevo chiederti il favore di postare un link o qualche consiglio per inserire il canale alfa nella creazione dei frame,avevo postato una richiesta su questo forum...ma nessuno aveva saputo rispondermi.
    Come ti è stato detto migliaia di volte, non si interviene in discussioni altrui per porre un'altra domanda.

    Se hai già postato una discussione sull'argomento, continua quella.

    Se la discussione non ha ricevuto risposte, evidentemente nessuno la conosceva, oppure nessuno l'ha notata (basta inserire un piccolo intervento con qualche dettaglio in più per riportarla in rilievo).

    Se pensi che l'autore di questa discussione possa aiutarti nel tuo problema, sfrutta i messaggi privati e segnala la discussione che hai già aperto all'utente, se questo non ritiene invadente la tua segnalazione (ma in tal caso, non è che l'intromissione con rovesciamento della domanda sia più discreta, in verità).

    In ogni caso, non intervenire in discussioni aperte da altri utenti che attendono risposte al proprio problema ponendo una domanda differente e deviando il contenuto della discussione: è una pratica da non seguire, perché caotica e nemmeno tanto corretta (cosa penseresti se nella discussione che hai aperto, qualcuno intervenisse chiedendo di parlare d'altro?).

    Concludendo, la domanda di riferimento di questa discussione per la quale si inseriscono risposte è la prima; per il problema posto in secondo luogo, parlane nella discussione che hai già aperto (hai detto di averlo fatto, quindi tu saprai di quale si tratta), così come dovranno fare tutti gli altri.

    Sono stato prolisso, ma spero di aver chiarito senza dubbi particolari il modo corretto di utilizzare il forum.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.