swing 保存图片的问题 用 java swing 开发,在图片的任一位置,g.drawOval(point[0].x, point[0].y, width, height); 画了一个椭圆,我现在要保存这个图片到本地,同时要把在这个图片上的椭圆也同时保存在图片上,请问怎么做哦? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 存储的方式有很多.比如,用串行化的方式可以存储,但只能通过特定的程序才能够再次显示出来.如果有存储成一个图片格式(如JPG,GIF)等,则只能存储最终结果,也就是说,不能复原原来的图片及椭圆. 画矩形,保存到本地的代码: 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(); } /** * 保存文件 * * @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(); } } 现在的java还有FontRenderContext这个类吗? 隔壁帖子看地题目,谁能给解释一下结果? 跪求一个java简单题答案 集合对象问题····帮帮忙! HTML自定义右键的菜单 JAVA如何做web服务 关于Java的代码安全性? 如何用jb做一个HelloWorld? 请问我怎么能在Linux下使用java运行另外一个java程序并且看到后者的输出? Java简直要把我逼疯了:( 关于graphics的一个小问题,大家进来帮我看看。。。 ubuntu上怎么配置JDK和eclipse
如果有存储成一个图片格式(如JPG,GIF)等,则只能存储最终结果,也就是说,不能复原原来的图片及椭圆.
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();
}
* 保存文件
*
* @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();
}
}