【问题标题】:Having problems loading a jpg file using libjpeg使用 libjpeg 加载 jpg 文件时出现问题
【发布时间】:2018-01-11 13:44:53
【问题描述】:

我需要在我的应用程序中加载 jpg 文件。我使用 libjpeg 保存 JPG(来自处理过的原始文件),效果很好。

但阅读它们是一个不同的问题。我得到了非常奇怪的结果,图像非常扭曲,有 12 列,大部分是灰度。

我按照这个例子做的,唯一的修改是如何将数据放入我的缓冲区(例子中缺少 put_scanline_someplace() 函数。

这是我的相关代码(我需要BGR格式的数据):

dest=0;
while(cinfo.output_scanline < cinfo.output_height)
{
    jpeg_read_scanlines(&cinfo, buffer, 1);
    src=0;

    for(i=0;i<cinfo.output_width;i++)
    {
        image_buffer[dest*3+2]=buffer[src*3+0];
        image_buffer[dest*3+1]=buffer[src*3+1];
        image_buffer[dest*3+0]=buffer[src*3+2];
        src++;
        dest++;
    }
}

这段代码有问题吗?

【问题讨论】:

    标签: libjpeg


    【解决方案1】:

    我找到了解决方案。 buffer 是一个指向整数数组的指针,所以工作的代码是这样的:

            image_buffer[dest*3+2]=buffer[0][src*3+0];
            image_buffer[dest*3+1]=buffer[0][src*3+1];
            image_buffer[dest*3+0]=buffer[0][src*3+2];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-23
      • 1970-01-01
      • 1970-01-01
      • 2021-11-20
      • 2021-08-01
      相关资源
      最近更新 更多