将RGB转换为JPG格式到内存的代码
前面有文章,将RGB格式转换为JPG文件。近来工作需要,需要RGB转换为JPG格式到内存。这事……
int rgb2jpgAction(struct jpeg_compress_struct* pCinfo, const char *pRgbData, const int width, const int height)
{int depth = RGB_COUNT;JSAMPROW row_pointer[1];pCinfo->image_width = width;pCinfo->image_height = height;pCinfo->input_components = depth;pCinfo->in_color_space = JCS_RGB;jpeg_set_defaults( pCinfo); jpeg_set_quality( pCinfo, JPEG_QUALITY, TRUE );jpeg_start_compress(pCinfo, TRUE);int row_stride = width * depth;while (pCinfo->next_scanline < pCinfo->image_height){row_pointer[0] = (JSAMPROW)(pRgbData + pCinfo->next_scanline * row_stride);jpeg_write_scanlines(pCinfo, row_pointer, 1);}jpeg_finish_compress( pCinfo);jpeg_destroy_compress(pCinfo);return 0;
}/**这里特别说明jpeg_mem_dest的第二个参数,buffer。如果在rgb2jpg声明指针或者缓冲区,然后试图复制到pDest,直接崩溃;或者取不到数据。研究了半天不行。必须是如下的写法。如果缓冲区不够怎么办?那就开大一点。char pDest[512*1024];int size=512*1024;然后再传递过来。*/
int rgb2jpg(const char *pRgbData, const int width, const int height, int type, char* pDest, int* pSize)
{struct jpeg_compress_struct cinfo;struct jpeg_error_mgr jerr;FILE* pOutFile = NULL;cinfo.err = jpeg_std_error(&jerr);jpeg_create_compress(&cinfo);if (type){if ((pOutFile = fopen(pDest, "wb")) == NULL){return -1;}jpeg_stdio_dest(&cinfo, pOutFile);}else{jpeg_mem_dest(&cinfo, (unsigned char **)&pDest, (long unsigned int *)pSize);}rgb2jpgAction(&cinfo, pRgbData, width, height);if (type){fclose(pOutFile);}return 0;
}
将RGB转换为JPG格式到内存的代码相关推荐
- 教你用8行代码将word转换为pdf格式 及 6行代码实现批量将word转换为pdf格式--python实用小技能get起来
目录 将word转换为pdf格式 安装pywin32 上代码 运行结果 批量实现word转pdf 安装docx2pdf 上代码 运行结果 将word转换为pdf格式 安装pywin32 代码(Anac ...
- matlab csc,matlab - 从Matlab CSC转换为CSR格式 - 堆栈内存溢出
我最终使用CUSP库将Matlab中的CSC格式从Matlab转换为CSR,如下所示. 从matlab获取矩阵A之后,我得到了row , col和values矢量,然后将它们复制到分别为它们创建的th ...
- 视频图像数据处理八:将rgb视频图像转换为yuv420格式视频图像
文章目录 转换公式 需要注意 函数代码 测试用例 下载 本文介绍了将rgb视频图像转换为yuv420格式视频图像的方法,附有详细的代码和图像示例.文中rgb24和yuv420文件需要使用yuv/rgb ...
- 在Python中使用OpenCV将RGB格式的图像转换为HSV格式的图像
An HSV is another type of color space in which H stands for Hue, S stands for Saturation and V stand ...
- 初学音视频(一)-RGB和YUV格式分析
前言 有幸能够看到雷霄骅先生的博客,很感谢雷神能够这么无私把知识分享出来,对我这种新手的帮助实在是太大了.希望到另一个世界雷神不用再这么辛苦的. 本篇文章基本全是参考雷神的:视音频数据处理入门:RGB ...
- 图片格式及其内存占用
游戏中最占内存的是图片,所以本篇主要讲图片的优化方式. 1.内存计算公式 默认情况下,在cocos2d里面加载一张图片的时候,图片中每一个像素点使用4个byte(8位)来表示--分别代表red.gre ...
- FFmpeg开发实战(五):bmp转换为jpeg格式图像
文章目录 1. bmp结构 2. bgr24转yuv420p 3. yuv420转jpeg 4. 下载 本文介绍了将bmp格式图像转换为jpeg格式图像的方法,附有详细的代码和图像示例. 1. bmp ...
- 走进音视频的世界——RGB与YUV格式
在图像的世界里,一般使用RGB作为存储格式.而在视频的世界里,一般使用YUV作为压缩存储格式.有时候面试官会问:为什么视频使用YUV来压缩存储,而不用RGB?YUV与RGB有什么区别,两者如何转换的? ...
- 【C语言】之把yuyv422格式的图片转换为pnm格式的图片
平台:Linux /***************************************************************************** 文件名:Yuyv422T ...
- 转:YUV RGB 常见视频格式解析
转: http://www.cnblogs.com/qinjunni/archive/2012/02/23/2364446.html YUV RGB 常见视频格式解析 I420是YUV格式的一种,而Y ...
最新文章
- java-IO操作简介
- php如何进行错误处理,php如何自定义错误处理
- 腾讯视频怎么打开个人直播后台播放功能
- 二级数据库access和mysql_二级数据库access和mysql
- Ubuntu16.04 Oracle JDK8和Open JDK8的安装与配置
- JS中字串转参数用的false/true
- cad常青藤插件_做CAD设计,别说你不知道,这些插件有多好用
- java边缘检测_Sobel边缘检测实现
- range-coder使用
- oracle语句报错 * ERROR at line 2: ORA-00923: FROM keyword not found where expected
- 修真院java_【修真院JAVA小課堂】JMeter的簡單介紹
- 初学太极拳须知--吴公仪
- 怎么屏蔽还有照片_【文末福利】在朋友圈发男神照片忘了屏蔽父母,麻麻的回应亮了…...
- 3步轻松申请邮箱账号,申请163vip邮箱
- 了解阿博茨RPA生态系统
- Metal(二) Metal语法规范
- 甲骨文发布移动版Java发展路线图
- 一头扎紧mysql_[www.java1234.com]一头扎进Mysql视频教程
- 2018年NOIP普及组完善程序题2—右侧第一个更大值
- tensorboard画loss及acc曲线
热门文章
- K-Lite Codec Pack 解码器下载及安装过程步骤参考
- linux nginx源码安装
- 你应该知道的Redis过期键和过期策略
- 微软超融合私有云测试02-测试架构描述
- 听飞狐聊JavaScript设计模式系列12
- ie java 注册表,win7在桌面显示IE图标的注册表
- HTML实现学习网站首页
- java 循环读取指定文件夹下所有文件
- 创意c语言程序设计,大学生·创意·创新创业教育与实践系列教材:C语言程序设计教程简介,目录书摘...
- 网站五万ip需要服务器,30万IP网站要用什么样的服务器?