3001
- 收藏
- 点赞
- 分享
- 举报
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;
}
我将转换后的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)
相关问答
-
2018-12-24 09:39:12
-
2016-11-17 13:38:02
-
2014-08-20 14:07:10
-
2016-09-19 14:42:36
-
2020-01-03 16:16:42
-
2016-08-29 18:24:58
-
2019-01-17 13:29:18
-
2020-04-07 11:16:26
-
2019-01-02 09:42:51
-
2018-12-05 15:20:25
-
2019-01-21 14:58:53
-
2021-04-23 18:08:14
-
2018-10-14 10:32:03
-
2020-07-23 09:09:18
-
2019-01-16 09:21:22
-
2019-01-14 09:38:06
-
2021-03-01 15:13:40
-
2015-12-09 20:36:11
-
2018-11-09 16:22:04
无更多相似问答 去提问
点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
悬赏问答
-
5Hi3516CV610 如何使用SD卡升级固件
-
5cat /dev/logmpp 报错 <3>[ vi] [func]:vi_send_frame_node [line]:99 [info]:vi pic queue is full!
-
50如何获取vpss chn的图像修改后发送至vo
-
5FPGA通过Bt1120传YUV422数据过来,vi接收不到数据——3516dv500
-
50SS928 运行PQtools 拼接 推到设备里有一半画面会异常
-
53536AV100的sample_vdec输出到CVBS显示
-
10海思板子mpp怎么在vi阶段改变视频数据尺寸
-
10HI3559AV100 多摄像头同步模式
-
9海思ss928单路摄像头vio中加入opencv处理并显示
-
10EB-RV1126-BC-191板子运行自己编码的程序
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认