DJViking Skrevet 24. mars 2003 Del Skrevet 24. mars 2003 Noen som vet hvordan jeg kan få lagret det som tegnes med et Graphics objekt til en bildefil(gif,jpg, etc) eller til utklippstavlen(til bruk for å lime inn i et grafikkprogram eller Word). Det tegnes på et JPanel komponent. Jeg har fått litt info om at jeg må bruke BufferedImage for å dobbeltbuffre(lagre unna tell bruk) det som tegnes. Hvordan dette gjøres er jeg litt usikker på. Bibliotekspakken imageio brukes vel kanskje til formålet med å lage bildefiler ? Lenke til kommentar
MailMan13 Skrevet 25. mars 2003 Del Skrevet 25. mars 2003 Du kan skrive et BufferedImage til en fil med statiske metoder i javax.imageio.ImageIO klassen. try { File fil = new File("mittBilde.jpg"); ImageIO.write(mittBufferedImage, "jpg", fil); } catch(Exeption e){System.err.println("Noe gikk galt!");} ImageIO.getWriterFormatNames() returnerer formatene som kan skrives. Et BufferedImage brukes til dobbel-buffring ved at man oppretter et tomt bilde og tegner til graphics-konteksten til bildet for så å tegne hele bildet til f.eks et panel når alle beregninger er gjort. Det kan være fint siden man da slipper å fjerne det som står på skjermen mens man tegner neste frame og eliminerer flimmer i animasjoner. Lenke til kommentar
DJViking Skrevet 30. mars 2003 Forfatter Del Skrevet 30. mars 2003 Jeg fant ut hvordan et bilde opprettes. Men har litt problemer med å finne ut hvordan jeg legger graphics contexten på selve BufferedImage objektet. Det er ingen metoder eller konstruktører som tar inn et Graphics objekt til det opprettede BufferedImage objektet. Lenke til kommentar
MailMan13 Skrevet 31. mars 2003 Del Skrevet 31. mars 2003 Jeg pleier å gjøre dobbel buffring slik for et panel: public MittPanel() { /* setter opp offscreen-bilde og henter grafisk kontekst. */ BufferedImage offscreen = new BufferedImage(bredde, hoyde, BufferedImage.TYPE_INT_RGB); Graphics page = offscreen.getGraphics(); } public void paint(Graphics g){ /* tegner først et eller annet til offscreen, så tegner man offscreen til panelet. Her slipper man å kalle clearRect() eller super.paint() først. */ tegnEtEllerAnnet(page); g.drawImage(offscreen,0,0,this); } Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå