Java 为什么BuffereImage构造函数抛出NegativeArraySizeException异常
为什么以下代码抛出Java 为什么BuffereImage构造函数抛出NegativeArraySizeException异常,java,Java,为什么以下代码抛出NegativeArraySizeException异常 new BufferedImage(250 * 100, 250 * 100, BufferedImage.TYPE_4BYTE_ABGR); 输出 Exception in thread "main" java.lang.NegativeArraySizeException at java.awt.image.DataBufferByte.<init>(Unknown Source)
NegativeArraySizeException
异常
new BufferedImage(250 * 100, 250 * 100, BufferedImage.TYPE_4BYTE_ABGR);
输出
Exception in thread "main" java.lang.NegativeArraySizeException
at java.awt.image.DataBufferByte.<init>(Unknown Source)
at java.awt.image.Raster.createInterleavedRaster(Unknown Source)
at java.awt.image.BufferedImage.<init>(Unknown Source)
at Main.main(Main.java:120)
线程“main”java.lang.NegativeArraySizeException中的异常
位于java.awt.image.DataBufferByte。(未知源)
位于java.awt.image.Raster.createInterleavedRaster(未知源)
位于java.awt.image.buffereImage。(未知源)
Main.Main(Main.java:120)
它是否超过了某些内部缓冲区的限制?
(250*100)*(250*100)*4=2500000000
,并且结果大于int
的最大值:2**31-1=2147483647
。表示数据将在单个字节数组中,因此它超出了限制。(250*100)*(250*100)*4=2500000000
,结果大于int
的最大值:2**31-1=2147483647
。表示数据将以单个字节
数组的形式出现,因此超出了限制。是否有任何方法可以创建如此巨大的图像?是否有任何方法可以创建如此巨大的图像?