上一篇文章我们谈到如何修改libjpeg库来解码内存中的jpeg数据这件事情,也确实做到了这一点,然而紧随其后的就发现了一个很蛋疼的问题。因为libjpeg库输出的图像像素是以r-g-b这样的顺序排列的,而在Windows平台上要去显示内存中的图像数据通常是在内存中创建一个位图对象bitmap,然后将要显示的图像数据拷到其相应的位置中,拷贝完成后显示图像。蛋疼的地方就在于bitmap的像素是以b-g-r这样的顺序排列的,这就要求我们在拷贝数据的时候要逐个像素点进行修改,这样做浪费的时间是跟图像的大小成正
libjpeg库解码jpeg图像输出数据排列问题
最新推荐文章于 2022-12-16 10:34:58 发布
在使用libjpeg库解码JPEG图像时,遇到输出数据的RGB顺序与Windows平台Bitmap要求的BGR顺序不一致的问题,导致显示或保存为BMP格式时效率低下。通过对libjpeg源码的分析,找到了jdcolor.c文件中关键的像素排列代码,通过修改这部分代码,成功将输出顺序改为BGR,从而避免了逐像素转换,提升了效率。
摘要由CSDN通过智能技术生成