首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

swing 保存图片的有关问题

2012-01-29 
swing 保存图片的问题用 java swing 开发,在图片的任一位置,g.drawOval(point[0].x, point[0].y, width, h

swing 保存图片的问题
用 java swing 开发,在图片的任一位置,g.drawOval(point[0].x, point[0].y, width, height); 画了一个椭圆,我现在要保存这个图片到本地,同时要把在这个图片上的椭圆也同时保存在图片上,请问怎么做哦?

[解决办法]
画矩形,保存到本地的代码:

BufferedImage bufferImage = new BufferedImage(1024, 768, 1);
Rectangle2D rect = new Rectangle2D.Double(20, 50, 40, 80);
Graphics2D g2d = ((Graphics2D) bufferImage.getGraphics());
g2d.draw(rect);
g2d.dispose();
 

OutputStream out = null;
try {
out = new FileOutputStream("D:\\paint.jpg");

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bufferImage);
param.setQuality(0.75f, true);
encoder.encode(image, param);
out.flush();
out.close();
} catch (Exception e1) {
e1.printStackTrace();
}
[解决办法]

Java code
/**     * 保存文件     *      * @param file:文件路径     */    private void save(String file) {        BufferedOutputStream imageOut;        try {            imageOut = new BufferedOutputStream(new FileOutputStream(new File(                    file)));            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(imageOut);                        // getAreaImage()方法返回的是一个BufferedImage对象                           // 只需把你的图像转换成BufferedImage对象放进去即可            encoder.encode(getAreaImage());        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (ImageFormatException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    } 

热点排行