我保存图片的函数如下:
public void saveAsJPEG(File file) {
this.repaint();
BufferedImage bufferedimage = new BufferedImage(this.getWidth(), this.getHeight(),BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2d = bufferedimage.createGraphics();
paintComponent(graphics2d);
try {
FileOutputStream fileoutputstream = new FileOutputStream(file);
JPEGImageEncoder jpegimageencoder = JPEGCodec.createJPEGEncoder(
fileoutputstream);
com.sun.image.codec.jpeg.JPEGEncodeParam jpegencodeparam =
jpegimageencoder.getDefaultJPEGEncodeParam(bufferedimage);
jpegimageencoder.encode(bufferedimage);
fileoutputstream.close();
}
catch (IOException ioexception) {
ioexception.printStackTrace();
}
}
保存小图片没有问题,但大图像时就出现内存不足,望高手指教!谢谢!
public void saveAsJPEG(File file) {
this.repaint();
BufferedImage bufferedimage = new BufferedImage(this.getWidth(), this.getHeight(),BufferedImage.TYPE_INT_RGB);
Graphics2D graphics2d = bufferedimage.createGraphics();
paintComponent(graphics2d);
try {
FileOutputStream fileoutputstream = new FileOutputStream(file);
JPEGImageEncoder jpegimageencoder = JPEGCodec.createJPEGEncoder(
fileoutputstream);
com.sun.image.codec.jpeg.JPEGEncodeParam jpegencodeparam =
jpegimageencoder.getDefaultJPEGEncodeParam(bufferedimage);
jpegimageencoder.encode(bufferedimage);
fileoutputstream.close();
}
catch (IOException ioexception) {
ioexception.printStackTrace();
}
}
保存小图片没有问题,但大图像时就出现内存不足,望高手指教!谢谢!
解决方案 »
- [高分相求!]如何将lex&yacc的规则转成anltr的规则?
- AbstractTableModel 作出一连串改动, 最后如何写入到数据库?
- UP有分!UP有分!--关于构造函数之间的相互调用,提一个大家都会遇到的问题!--UP有分!UP有分!
- 控制APPLICATION窗体问题
- 带包名 继承 error: cannot find symbol
- 关于JFileChooser,我想只选择文件夹,但是选择的时候必须显示出文件
- 在java中如何用URL类访问一个网页,并获取返回值????
- 请问怎么样通过数字签名使得Applet能访问本地文件系统和打印机
- 我是JAVA的初学者,有谁想和我一起学的,请加我的QQ,221017
- Java的一个传值问题,问了班里N多人没一个解决了,上来求大神
- SQL SERVER 乱码问题,急!!!(新手)
- tomcat 是干什么用的啊?不明白
-Xms128M -Xmx512M
如:java -Xms128M -Xmx512M ...
改内存当然可以,但是需求多大的内存?今天的图片5M,明天的10M,后天的如果100M呢?可见改内存很不明智,特别是程序给别人用的时候,鬼知道怎么改,即使知道也不愿意改那一下。