c – libjpeg解码为BGR
发布时间:2020-12-16 03:26:12 所属栏目:百科 来源:网络整理
导读:我正在使用libjpeg将jpeg映像从磁盘解码到分配在堆上的内存缓冲区.我使用jpeg_read_scanlines从文件中读取和解码每个扫描线.这是正常工作,将每个像素解码为24位RGB值. 问题是我正在使用额外的第三方库,它需要BGR格式的缓冲区(而不是RGB).当使用这个库时,我会
我正在使用libjpeg将jpeg映像从磁盘解码到分配在堆上的内存缓冲区.我使用jpeg_read_scanlines从文件中读取和解码每个扫描线.这是正常工作,将每个像素解码为24位RGB值.
问题是我正在使用额外的第三方库,它需要BGR格式的缓冲区(而不是RGB).当使用这个库时,我会得到奇怪的结果,因为渠道的顺序是错误的. 因此,我想找到一种使libjpeg解码为BGR格式而不是RGB的方法.我拖网了,找不到如何配置libjpeg呢?我知道我可以再次通过内存缓冲区并手动重新排列颜色通道,但是我正在处理的应用程序是非常时间关键的,必须尽可能快速和高效. 解决方法
几个解决方案给你:
>按照建议进行转换.如果您处理4个像素组,则可以使用三个32位读写操作,位掩码和移位来执行所有操作,并且速度非常快. 此外,你说你是速度之后,你操纵BGR数据(而不是BGRX).这对我来说没有什么意义,因为32位边界上的对齐像素可能要快得多. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |