kdkgod

kdkgod

0个粉丝

20

问答

0

专栏

0

资料

kdkgod  发布于  2016-11-01 23:09:33
采纳率 0%
20个问答
2812

jpeglib从RGB转换成Jpg颜色变化错误

 
我的程序是从vpss上取yuv420sp,然后将yuv通过ive转换成rgb,用的是IVE_CSC_MODE_PIC_BT709_YUV2RGB这个,输出类型enType是IVE_IMAGE_TYPE_U8C3_PACKAGE。

我将转换后的RGB数据保存成bmp文件格式,打开之后没有问题。

但是用jpeglib转换成jpg,红色的变成了蓝色,蓝色的变成了红色。 我以为是U8C3_PACKAGE保存的格式是BGR,然后我将B与R对倒了一下,但是转换之后还是老样子,啥原因呢。

从网上爬的这段代码
int rgb2jpeg(const char * filename, unsigned char* rgbData,int image_width,int image_height,int quality)  
{  
    struct jpeg_compress_struct jpeg;  //identify a compress object
    struct jpeg_error_mgr jerr;  //error information

    jpeg.err = jpeg_std_error(&jerr);  
    jpeg_create_compress(&jpeg);  //init compress object

    FILE* pFile = fopen(filename, "wb");
    if( !pFile )  return 0;  
    jpeg_stdio_dest(&jpeg, pFile);  

    //compress param set,i just did a simple param set
    jpeg.client_data=(void*)&pFile;
    jpeg.image_width = image_width;  
    jpeg.image_height = image_height;  
    jpeg.input_components  = 3;  
    jpeg.in_color_space = JCS_RGB;
    jpeg_set_defaults(&jpeg);   
    //// 指定亮度及色度质量  
    //jpeg.q_scale_factor[0] = jpeg_quality_scaling(100);  
    //jpeg.q_scale_factor[1] = jpeg_quality_scaling(100);  
    //// 图像采样率,默认为2 * 2  
    //jpeg.comp_info[0].v_samp_factor = 2;  
    //jpeg.comp_info[0].h_samp_factor = 2;  
    //// set jpeg compress quality  
    jpeg_set_quality(&jpeg, quality, TRUE);  //100 is the highest

    //start compress
    jpeg_start_compress(&jpeg, TRUE);  

    JSAMPROW row_pointer[1];  

    //from up to down ,set every pixel
    for( unsigned int i=0;i    {
        row_pointer[0] = rgbData+i*jpeg.image_width*3;
        jpeg_write_scanlines( &jpeg,row_pointer,1 );
    }
    //stop compress
    jpeg_finish_compress(&jpeg);

    fclose( pFile );
    pFile = NULL;
    jpeg_destroy_compress(&jpeg);
    return 0;
}


我来回答
回答0个
时间排序
认可量排序
易百纳技术社区暂无数据
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区