Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将png图像添加到java小程序_Java_Image_Applet_Png - Fatal编程技术网

将png图像添加到java小程序

将png图像添加到java小程序,java,image,applet,png,Java,Image,Applet,Png,我对Java非常陌生,我想在我的小程序中添加一个PNG图像。由于某种原因,当我添加此图像时,我收到以下错误: 线程“Image Fetcher 0”java.lang.OutOfMemoryError中出现异常:java堆空间 位于java.awt.image.DataBufferInt。(未知源) 位于java.awt.image.graster.createPackedRaster(未知源) 位于java.awt.image.DirectColorModel.createCompatible

我对Java非常陌生,我想在我的小程序中添加一个PNG图像。由于某种原因,当我添加此图像时,我收到以下错误:

线程“Image Fetcher 0”java.lang.OutOfMemoryError中出现异常:java堆空间 位于java.awt.image.DataBufferInt。(未知源) 位于java.awt.image.graster.createPackedRaster(未知源) 位于java.awt.image.DirectColorModel.createCompatibleWritableRaster(未知源) 位于sun.awt.image.ImageRepresentation.CreateBuffereImage(未知源) 位于sun.awt.image.ImageRepresentation.setPixels(未知源) 位于sun.awt.image.ImageDecoder.setPixels(未知源) 在sun.awt.image.PNGImageDecoder.sendPixels处(未知源) 位于sun.awt.image.PNGImageDecoder.produceImage(未知源) 在sun.awt.image.InputStreamImageSource.doFetch(未知源)处 位于sun.awt.image.ImageFetcher.fetchloop(未知源) 位于sun.awt.image.ImageFetcher.run(未知源)


当我尝试添加jpeg图像时,效果很好。如何解决这个问题?

您的PNG图像有多大?根据您给我的堆栈跟踪判断,当您尝试从加载的映像创建
buffereImage
时,似乎堆空间不足。您可以尝试将图像大小调整为较小的大小

您可以首先尝试增加堆大小,看看这是否解决了问题-查看applet的参数,尽管这不是一个永久的解决方案(没有人喜欢占用内存的applet)。您还应该通过探查器运行应用程序,并查看什么消耗了大部分内存。
OutOfMemoryError
可能意味着某个地方出现内存泄漏。它甚至可能超出了图像加载类的范围,因为在尝试加载图像时,堆可能已经被过度填充,并且图像加载导致它被填充。尝试在中使用探查器,因为它会告诉您最大的消费者

希望有帮助:)

--Flaviu Cipcigan

也有类似的帖子-