当前位置: 代码迷 >> J2SE >> swing 保存图片的有关问题
  详细解决方案

swing 保存图片的有关问题

热度:79   发布时间:2016-04-24 12:28:30.0
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();        }    }