使用Java按行或像素读/写图像文件

时间:2012-04-03 15:02:30

标签: java image file-io

我有一个带图像数据的特定对象。我想要读/写图像(BMP,JPEG和PNG格式)到这个对象。

当然,我可以在BufferedImage中读/写图像,然后将像素复制/粘贴到我的对象中。 但是,我希望在没有中间对象的情况下更快地完成它!

如何通过标准Java库执行它或抛出其他Java库?

P.S .:
我知道pngj库允许按行读取PNG图像。也许您知道相同的BMP,JPEG(或所有这些库:BMP,JPEG,PNG)?

2 个答案:

答案 0 :(得分:0)

如果你想自己做所有的阅读,你可以用流打开文件并将其读入一个数组,但你需要按照文件的整个结构(标题等)进行操作。 。)如果你正在使用压缩格式,你也必须处理它。

最好是使用imageio加载/写入你的文件,我不相信你的图像的读/写有很多开销。 此外,如果您希望对图像做一些繁重的工作,请知道BufferedImages可以进行硬件加速,这将大大提高性能。

答案 1 :(得分:0)

为什么不在BufferedImage中拥有ObjectBufferedImage并不是那么糟糕。否则,您需要使用BufferedImage之类的内容将图像文件转换为像素,然后将BufferedImage读取为int[]像素数组,但仍需要BufferedImage 1}}在中间,这会通过添加额外的循环来读取和存储像素来减慢速度。

BufferedImage是否适合您的目的?