我有一个带图像数据的特定对象。我想要读/写图像(BMP,JPEG和PNG格式)到这个对象。
当然,我可以在BufferedImage
中读/写图像,然后将像素复制/粘贴到我的对象中。 但是,我希望在没有中间对象的情况下更快地完成它!
如何通过标准Java库执行它或抛出其他Java库?
P.S .:
我知道pngj库允许按行读取PNG图像。也许您知道相同的BMP,JPEG(或所有这些库:BMP,JPEG,PNG)?
答案 0 :(得分:0)
如果你想自己做所有的阅读,你可以用流打开文件并将其读入一个数组,但你需要按照文件的整个结构(标题等)进行操作。 。)如果你正在使用压缩格式,你也必须处理它。
最好是使用imageio加载/写入你的文件,我不相信你的图像的读/写有很多开销。 此外,如果您希望对图像做一些繁重的工作,请知道BufferedImages可以进行硬件加速,这将大大提高性能。
答案 1 :(得分:0)
为什么不在BufferedImage
中拥有Object
? BufferedImage
并不是那么糟糕。否则,您需要使用BufferedImage
之类的内容将图像文件转换为像素,然后将BufferedImage
读取为int[]
像素数组,但仍需要BufferedImage
1}}在中间,这会通过添加额外的循环来读取和存储像素来减慢速度。
BufferedImage
是否适合您的目的?