Искам да направя JPG файл от Graphics2d обекти? Функцията която използвам за засъздаване нa JPG файла е:
public void saveComponentAsJPEG(Component myComponent, String filename) {
Dimension size = myComponent.getSize();
BufferedImage myImage =
new BufferedImage(289, 161,
BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = myImage.createGraphics();
myComponent.paint(g2);
try {
OutputStream out = new FileOutputStream(filename);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(myImage);
out.close();
} catch (Exception e) {
System.out.println(e);
}
}
,като с myComponent.paint(g2); се вика :
public void paint(Graphics g){
Graphics2D g2=(Graphics2D)g;
g2.setPaint(textura[0]);
g2.fillRect(0,0,80,50);
g2.setPaint(textura[1]);
g2.fillRect(80,0,80,50);
g2.setPaint(textura[2]);
g2.fillRect(160,0,80,50);
g2.drawImage(image[0],0,50,80,50,this);
g2.drawImage(image[1],80,50,80,50,this);
g2.drawImage(image[2],160,50,80,50,this);
g2.drawImage(image[3],240,50,80,50,this);
g2.drawImage(image[4],0,150,80,50,this);
g2.drawImage(image[5],80,150,80,100,this);
g2.drawImage(image[6],160,150,80,50,this);
g2.drawImage(image[7],240,150,80,50,this);
}
, textura[] e масив от TexturePaint обекти, а image е масив от Image обекти.
Значи програмата работи без проблем до първият g2.drawImage. След изпълнението на g2.drawImage командата възниква някаква грешка,програмата прекъсва изпълнението си и не се създава JPG файла.
Някой има ли представа защо става така. И как мога да реша този проблем?