|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
[Java, ancora Java fino alla morte, quand'è che tornerò a C++ :'(] filtering immagine
dunque, devo disegnare su un Canvas (tramite Graphics.drawImage ovviamente) un'immagine ottenuta "filtrando" i pixel di un'altra, cioè semplicemente cambiandoli con valori calcolati in base ai valori originali. l'immagine originaria sta in un oggetto BufferedImage, e ok: quello riesco a disegnarlo tranquillamente. poi per produrre l'immagine "filtrata" faccio pari pari come dice Sun alla documentazione di FilteredImageSource, ovvero:
Codice:
ImageFilter filter = new MyClassDerivedFromRGBImageFilter(); FilteredImageSource filteredSource = new FilteredImageSource(original.getSource(), filter); filtered = Toolkit.getDefaultToolkit().createImage(filteredSource); problema: se passo filtered a Graphics.drawImage manco a dirlo non funziona; ![]() aggiungo: anche se il modello Producer/Consumer/Observer non è il sistema più consigliabile per fare quello che devo a questo punto vorrei comunque conoscere quale sarebbe in teoria la soluzione. ^^ |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4739
|
uhm probabilmente non c'entra, ma ... della tua canvas, la chiami la funzione di repaint? (se si tratta di una canvas per come la conosco io, fatta proprio per non lavorare in immediate mode, quasi sicuramente ne prevede l' uso)
__________________
Jappilas is a character created by a friend for his own comic - I feel honored he allowed me to bear his name Saber's true name belongs to myth - a Heroic Soul out of legends, fighting in our time to fullfill her only wish Let her image remind of her story, and of the emotions that flew from my heart when i assisted to her Fate
Ultima modifica di jappilas : 23-01-2007 alle 20:21. |
|
|
|
|
|
#3 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
si che la chiamo, ho anche messo un breakpoint nel punto dove avviene la drawImage e ci va! d'altra parte come ho detto ho provato a sostituire semplicemente "filtered" con "original": l'originale si vede, quella filtrata no!
|
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
ehm :|
scusate, non so perché ma adesso funziona :| sono giorni che lavorando su Eclipse i bug scompaiono magicamente senza che io tocchi codice: scompaiono semplicemente quando inizio a fare debug inizio seriamente a pensare che sia qualche problema di mancata ricompilazione da parte di Eclipse... scusate :| |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Erano centosette anni che non vedevo più usare FilteredImageSource
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#6 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
in tal caso quale sarebbe invece il metodo più consigliato? creazione manuale di un'altra BufferedImage? in tal caso preferisco il FilteredImageSource perché checchè se ne dica nella mia situazione mi semplifica il codice |
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Penso che se la frittata è fatta tanto vale mangiarsela. Se hai già il codice che funziona non cambiarlo.
Comunque sì, se maneggi immagini precotte lavori con BufferedImage create usando il metodo createCompatibleImage di un GraphicsConfiguration. Le filtri con BufferedImageOp.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#8 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
ti ringrazio.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:05.




















