我一直在尝试使用PNGJ编写等效的代码。我不想使用ImageIO.read
和BufferedImage.getRGB
,而是想纯粹地使用PNGJ获取像素。下面的代码是我的ImageIO+BufferedImage版本。
BufferedImage bi = ImageIO.read( imageFile );
...
int[] pixels = new int[arrSize];
bi.getRGB( 0, 0, width, height, pixels, 0, width );
我想要类似于PNGJ的东西。
lint = (ImageLineInt) reader.readRow();
scanLine = lint.getScanline();
...
???
这是我的测试图片详情:
ImageInfo [列数=1530,行数=1980,位深度=8,通道数=3,每像素位数=24,每像素字节数=3,每行字节数=4590,每行样本数=4590,每行样本数P=4590,透明度=false,灰度=false,索引=false,打包=false]
ImageIO.read
的速度。最大的收益通常是通过使用ImageIO.setUseCache(false)
来实现的。 - Harald K