高分求Java绘图并保存为透明Jpg的问题
画出一个透明的BufferedImage,在JFrame里看是正确的,输出到文件后颜色不对,透明度也没有,一律变成黑色的背景,代码是这样的:
public class StampDrawer {
private BufferedImage bimg = new BufferedImage(200,100,BufferedImage.TYPE_INT_ARGB);
public BufferedImage drawStamp(String name) {
Graphics2D g2 = (Graphics2D) bimg.getGraphics();
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_PURE);
g2.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
g2.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
Font font = new Font("楷体_gb2312",Font.BOLD,30);
g2.setFont(font);
g2.setColor(Color.RED);
g2.drawString(name, 50, 50);
//g2.setRenderingHint(hintKey, hintValue)
bimg.flush();
return bimg;
}
public void writeJpg(String name) {
try {
Iterator writers = ImageIO.getImageWritersByFormatName("jpeg");
ImageWriter writer = (ImageWriter)writers.next();
OutputStream os = new FileOutputStream("D:\\testJpg.jpg");
ImageOutputStream imgos = ImageIO.createImageOutputStream(os);
writer.setOutput(imgos);
writer.write(this.drawStamp(name));
imgos.flush();
imgos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
请高人指点~给出正解的给满分~~~~