Jeg sidder med et lille tegne program hvor jeg skal gemme mit Canvas som en image-fil (gif, jpeg, tiff, png, whatever, det kan jeg godt finde ud af)..
Mit problem er at jeg har scroll på min tegneflade, og når jeg så vil gemme det jeg har tegnet i en fil, så får jeg kun gemt det jeg kan se på skræmen, ved brug af java.awt.Robot..
Hvordan tager jeg hele Canvas og gemmer det i en image-fil..? Altså inklusiv det som jeg ikke kan se på skræmen, men som jeg ved er der..
Du tegner på dit JPanel, dvs du har placeret et Canvas på et JPanel, ikke? Det du tegner i dit tegneprogram bliver tegnet i en "tegne metode" vha. Graphics/Graphics2D?
Ok du har jo nærmest løsningen selv allerede, men her et lille eksempel hvordan man får et bufferedimage til at indholde alt hvad din tegne metode indeholder:
BufferedImage b = new BufferedImage(width, height, Transparency.OPAQUE); //Width,height kender du fra dit canvas Graphics2D g = b.createGraphics(); paint(g); // Brug b's graphic object i din paint metode, således tegnes alt på b g.dispose(); //ryd op
På den måde har du et bufferedimage med alt hvad der bliver tegnet fra paint metoden. Og det er jo faktisk det du allerede gør i form af en dobbel buffer (dit image object). Det image indeholder vel nok alt hvad der bliver tegnet på dit canvas og du kan derfor gemme det til disk.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.