为什么下面的代码会抛出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)
它是否超出了某些内部缓冲区的限制?
最佳答案
(250 * 100) * (250 * 100) * 4 = 2500000000
结果大于 int
的最大值:2 ** 31 - 1 = 2147483647
。 The document表示数据将在单个 byte
中数组,因此超出了限制。
关于java - 为什么 BufferedImage 构造函数会抛出 NegativeArraySizeException 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37048631/