(resources.getString("Message.exportAsPNG"));
// create a BufferedImage of the appropriate type
int w = buffer.getWidth();
int h = buffer.getHeight();
final ImageTranscoder trans = new PNGTranscoder();
trans.addTranscodingHint(PNGTranscoder.KEY_XML_PARSER_CLASSNAME,
application.getXMLParserClassName());
trans.addTranscodingHint(PNGTranscoder.KEY_FORCE_TRANSPARENT_WHITE,
new Boolean(true));
// Start: By Jun Inamori
if(isIndexed){
trans.addTranscodingHint
(PNGTranscoder.KEY_INDEXED,new Integer(256));
}
// End: By Jun Inamori
final BufferedImage img = trans.createImage(w, h);
// paint the buffer to the image
Graphics2D g2d = img.createGraphics();
g2d.drawImage(buffer, null, 0, 0);
new Thread() {
public void run() {
try {
currentSavePath = f;
OutputStream ostream =
new BufferedOutputStream(new FileOutputStream(f));
trans.writeImage(img,
new TranscoderOutput(ostream));
ostream.flush();
} catch (Exception ex) {}
statusBar.setMessage
(resources.getString("Message.done"));