Toon posts:

[java] image refresh

Pagina: 1
Acties:

Verwijderd

Topicstarter
hoi

wij hebben een probleempje met onze programma. We willen in onze applicatie als je op een plaatje clickt hij die eene pixel eruit zoekt en deze dan bij voorbeeld rood cleurd. Nu zet het programma die rode pixel wel in het bestand maar in de applicatie zie ik dan nog steeds het oude plaatje, maar ik wil dan natuurlijk het plaatje met die roode pixel zien.

hier wat uit onze code:

code:
1
2
3
4
5
6
7
8
9
BufferedImage im = ImageIO.read(new FileInputStream("roy.png"));
                        Color rood=new Color(255,0,0);
                        im.setRGB(xCoord,yCoord, rood.getRGB());
                        ImageIO.write(im, "png" ,(new FileOutputStream("roy.png")));
            
                        royLabel.setIcon(new ImageIcon("roy.png"));                 
                    
                        DefaultStores.makeMap("roy.png"); 
                        show();

Verwijderd

Laad em dan weer...

  • Gody
  • Registratie: November 2001
  • Laatst online: 04-05 13:31
Schrijft hij de image wel weg met rode pixel? En repaint al geprobeerd?

Verwijderd

repaint doen

Verwijderd

Topicstarter
Gody schreef op maandag 20 juni 2005 @ 13:44:
Schrijft hij de image wel weg met rode pixel? En repaint al geprobeerd?
ja hij schrijft de rode pixel wel weg in de file. En repaint hebben we al geprobeert maar dat werkt niet.

Verwijderd

volgens mij moet je het frame dan repainten.

edit: lol, allemaal dezelfde reacties zo'n beetje |:(

[ Voor 41% gewijzigd door Verwijderd op 20-06-2005 13:48 ]


Verwijderd

hahaha, da's duidelijk, met dat repainten.. lol

Verwijderd

Of opnieuw een read doen van dat bestand?

Verwijderd

Topicstarter
bedoelen jullie zo iets?

code:
1
2
3
4
5
6
7
8
9
BufferedImage im = ImageIO.read(new FileInputStream("roy.png"));
                        Color rood=new Color(255,0,0);
                        im.setRGB(xCoord,yCoord, rood.getRGB());
                        ImageIO.write(im, "png" ,(new FileOutputStream("roy.png")));
            
                        royLabel.setIcon(new ImageIcon("roy.png"));                 
                    
                        DefaultStores.makeMap("roy.png"); 
                        repaint();


dat werkt ook niet

Verwijderd

omdat ie niet compiled? of doet ie het gewoon niet?
en dat stuk code komt uit de paintComponent methode?

[ Voor 35% gewijzigd door Verwijderd op 20-06-2005 14:01 ]


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 04-05 14:55

Janoz

Moderator Devschuur®

!litemod

Waarom schrijf je eigenlijk je aangepaste bestand weer weg om hem vervolgens in te lezen? Het is toch veel makkelijker om gewoon die aangepaste image rechtstreeks opnieuw op je frame te zetten?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Verwijderd schreef op maandag 20 juni 2005 @ 14:01:
omdat ie niet compiled? of doet ie het gewoon niet?
en dat stuk code komt uit de paintComponent methode?
hij doet het gewoon niet.

dit stuk komt uit de mouseClicked() method van een mouselistener. het plaatje zit als ImageIcon in een JLabel wat in een JPanel zit en aan deze JPanel zit de MouseListener.

Verwijderd

Topicstarter
Janoz schreef op maandag 20 juni 2005 @ 14:04:
Waarom schrijf je eigenlijk je aangepaste bestand weer weg om hem vervolgens in te lezen? Het is toch veel makkelijker om gewoon die aangepaste image rechtstreeks opnieuw op je frame te zetten?
om dat een andere subroutine (wat dus deze command is: DefaultStores.makeMap("roy.png"); ) en andere berekening met dit veranderd bestand doet

  • JaWi
  • Registratie: Maart 2003
  • Laatst online: 14-01 21:58

JaWi

maak het maar stuk hoor...

Weet je zeker dat je ImageIO.read() call het gewijzigde bestand ophaalt, en niet een of andere gecachte versie? ImageIO doet voor performance redenen nogal wat aan cachen...?!

Statistics are like bikinis. What they reveal is suggestive, but what they hide is vital.


Verwijderd

Topicstarter
JaWi schreef op maandag 20 juni 2005 @ 15:06:
Weet je zeker dat je ImageIO.read() call het gewijzigde bestand ophaalt, en niet een of andere gecachte versie? ImageIO doet voor performance redenen nogal wat aan cachen...?!
nee weet ik niet. hoe zou ik dat cache gedoe dan uit kunnen schakelen?

  • JaWi
  • Registratie: Maart 2003
  • Laatst online: 14-01 21:58

JaWi

maak het maar stuk hoor...

Verwijderd schreef op dinsdag 21 juni 2005 @ 13:54:
[...]
nee weet ik niet. hoe zou ik dat cache gedoe dan uit kunnen schakelen?
Zie javadocs...

Statistics are like bikinis. What they reveal is suggestive, but what they hide is vital.

Pagina: 1