使用 libjpeg 库解压数据示例
static int MjpegDecompress( *** )
{
struct jpeg_decompress_struct tDInfo;
struct jpeg_error_mgr jerr;
unsigned char *buffer = NULL;
cinfo.err = jpeg_std_error(&jerr);
/* 申请并初始化一个 JPEG decompression object */
jpeg_create_decompress(&cinfo);
/* 这里有两种方式来传入待解压的源文件 */
/* 1. 提供源文件的描述符 infile */
jpeg_stdio_src(&cinfo, infile);
/* 2. 提供源文件的内存地址及长度 */
jpeg_mem_src(&cinfo,inbuf,size);
/* 读取 Jpeg 文件的文件头 */
jpeg_read_header(&cinfo, TRUE);
/* 开始解压 Jpeg 文件 */
jpeg_start_decompress(&cinfo);
/* 分配 scanline 所需的缓冲区 */
buffer = (unsigned char *) malloc(cinfo.output_width * cinfo.output_components);
if (NULL == buffer)
return -1;
while (cinfo.output_scanline < cinfo.output_height)
{
/* 将解压完成的数据存入 buffer */
jpeg_read_scanlines(&cinfo, &buffer, 1);
{
/* 对数据进行操作 */
}
}
/* 完成 Jpeg 的解码,释放 Jpeg 文件 */
jpeg_finish_decompress(&cinfo);
jpeg_destroy_decompress(&cinfo);
/* 释放缓冲区 */
free(buffer);
return 0;
}
使用 libjpeg 库解压数据示例的更多相关文章
- Node.js压缩与解压数据
Node.js中提供了一个很好的库Zlib来压缩解压数据. 一.压缩缓冲区 Zlib中有下面几个函数方便解压缩缓冲区. gzip/gunzip:标准gzip压缩. deflate/inflate:基于 ...
- GZipStream 压缩与解压数据
简介:此类表示 GZip 数据格式,它使用无损压缩和解压缩文件的行业标准算法.这种格式包括一个检测数据损坏的循环冗余校验值.GZip 数据格式使用的算法与 DeflateStream 类的算法相同,但 ...
- DLib压缩解压程序示例
/* 这是一个示例程序,使用了Dlib库的compress_stream和cmd_line_parser组件. 这个示例实现了一个简单实用的命令行压缩程序. 当使用-h选项时候,程序输出如下: 使用: ...
- 7z 压缩解压简单示例
7z命令行压缩示例: 7z -tZip a test.zip ./test/* -mx0 把test文件夹中所有文件以存储压缩的模式压缩成zip格式的文件,压缩文件为test.zip a为添加选项 ...
- wss 协议传送过来的数据是经过 gzip 压缩过的,如何使用 qt 解压该数据呢?
#include <QtZlib/zlib.h> QByteArray qGzipUncompress(const QByteArray& data) { if (!data.da ...
- CMAKE编译时如何自动下载第三方库并解压、安装到指定目录
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 导语 在日常开发过程中难免会使用到第三方库或者需要将部分库分离另外存储,如果将库与代码放在一起难免会造成工程庞大,此时就可 ...
- Zip 压缩、解压技术在 HTML5 浏览器中的应用
JSZip 是一款可以创建.读取.修改 .zip 文件的 javaScript 工具.在 web 应用中,免不了需要从 web 服务器中获取资源,如果可以将所有的资源都合并到一个 .zip 文件中,这 ...
- 【咸鱼教程】JsZip压缩与解压教程
引擎版本3.0.6 教程目录一 为什么要用jszip二 如何使用jszip 2.1 下载jszip库 2.2 导入jszip库 2.3 加载和解压zip代码三 Demo源码下载 一 ...
- Python解压ZIP、RAR等常用压缩格式的方法
解压大杀器 首先祭出可以应对多种压缩包格式的python库:patool.如果平时只用基本的解压.打包等操作,也不想详细了解各种压缩格式对应的python库,patool应该是个不错的选择. pato ...
随机推荐
- JavaScript 排序算法
排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个对象呢?直接比较数学上的大小是没有意义的,因此,比较的 ...
- 01-jQuery的介绍
1.为什么要使用jQuery 在用js写代码时,会遇到一些问题: window.onload 事件有事件覆盖的问题,因此只能写一个事件. 代码容错性差. 浏览器兼容性问题. 书写很繁琐,代码量多. 代 ...
- 整理python小爬虫
编码使我快乐!!! 我也不知道为什么,遇到自己喜欢的事情,就越想做下去,可以一个月不出门,但是不能一天没有电脑 掌握程度:对python有了一个更清晰的认识,自动化运维,也许可以用python实现呢, ...
- sublime使用技巧汇总
sublime使用技巧 Ubuntu下安装sublime text 3143版本 Install the GPG key: wget -qO - https://download.sublimetex ...
- HTK计算mfcc/filter_bank源码解析
HTK计算mfcc/filter_bank源码解析 HTK可以用简单的 HCopy -C config -s scp 求取mfcc或者filter_bank 关于mfcc的原理在 http://my. ...
- liunx 安装jdk
1 下载jdk http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2 切换root ...
- 如何在html与delphi间交互代码
[转]如何在html与delphi间交互代码 (2015-11-19 22:16:24) 转载▼ 标签: it 分类: uniGUI uniGUI总群中台中cmj朋友为我们总结了如下内容,对于利用de ...
- 聚簇索引(clustered index )和非聚簇索引(secondary index)的区别
这两个名字虽然都叫做索引,但这并不是一种单独的索引类型,而是一种数据存储方式.对于聚簇索引存储来说,行数据和主键B+树存储在一起,辅助键B+树只存储辅助键和主键,主键和非主键B+树几乎是两种类型的树. ...
- 如何在cygwin中运行crontab定时脚本[利刃篇]
用到cygwin,自然是希望能多处理一些类似linux的任务了,那就自然少不了定时任务crontab,看到网上教程不少,自己运行一个测试却也不那么容易,下面就记录我的安装过程,以供参考吧! 1.首先, ...
- js 解析url中search时存在中文乱码问题解决方案
一 问题出现原因 当存在这样一种需求,前端需要通过url中search返回值进行保存使用,但如果search中存在中文解析出来会导致乱码.这个问题我找了很久原因,最后终于知道解决方案,这里和大家分享一 ...