利用libJpeg库实现将像素数据压缩至内存中
2012-12-04 16:00
295 查看
解压的文章来源自利用libjpeg8解压内存中的jpeg图片详解,感谢作者xieqi0793,使用本文的函数,请确保自己安装了libJPEG8库,如果没有,请点击此处下载该版本
以下为压缩的函数
以下为压缩的函数
//用于将像素信息以jpeg的形式压缩至内存中 int SC_jpgRes::jpeg_compress(SCUCHAR *inbuf, SCUCHAR *outbuf,uLongf *outSize) { int jpegWidth = jpeg的宽度; int jpegHeight = jpeg的高度; //开始进行jpg的数据写入 struct jpeg_compress_struct toWriteCinfo; struct jpeg_error_mgr jerr; JSAMPROW row_pointer[1]; int row_stride; toWriteCinfo.err = jpeg_std_error(&jerr); jpeg_create_compress(&toWriteCinfo); //确定要用于输出压缩的jpeg的数据空间 jpeg_mem_dest(&toWriteCinfo, &outbuf, outSize); toWriteCinfo.image_width = jpegWidth; toWriteCinfo.image_height = jpegHeight; toWriteCinfo.input_components = 3; toWriteCinfo.in_color_space = JCS_RGB; jpeg_set_defaults(&toWriteCinfo); jpeg_set_quality(&toWriteCinfo, 100, true); jpeg_start_compress(&toWriteCinfo,TRUE); row_stride = jpegWidth * 3; while(toWriteCinfo.next_scanline < toWriteCinfo.jpegHeight) { row_pointer[0] = & inbuf[toWriteCinfo.next_scanline * row_stride]; (void)jpeg_write_scanlines(&toWriteCinfo, row_pointer, 1); } jpeg_finish_compress(&toWriteCinfo); jpeg_destroy_compress(&toWriteCinfo); return 0; }
相关文章推荐
- 不修改libjpeg库同样实现内存内位图的压缩及解压缩
- 不修改libjpeg库同样实现内存内位图的压缩及解压缩
- 利用共享内存实现进程间通信
- 利用java内存映射文件机制实现CRC循环冗余校验
- Android 利用Java实现压缩与解压缩(zip、gzip)支持中文路径
- Lucene 4利用Codec实现压缩存储
- 利用SharpZipLib实现压缩多个文件或整个目录
- 在VC++ 6.0下利用共享内存、消息实现内部进程通讯
- Android 利用Java实现压缩与解压缩(zip、gzip)支持中文路径
- C++黑客编程揭秘与防范之利用修改内存的方式实现进程注入
- 基本字符串压缩 利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。
- asp.net利用RAR实现文件压缩解压缩【月儿原创】
- 利用SharpZipLib实现实时zip压缩下载整个目录
- 利用内存chunk充当数据buffer的vector的实现,和STL vector 有接口操作性能比较
- 利用C#调用WINRAR实现压缩与解压
- C# 利用ICSharpCode.SharpZipLib实现在线压缩和解压缩
- C# 下利用ICSharpCode.SharpZipLib.dll实现文件/文件夹压缩、解压缩
- libjpeg实现内存内位图的压缩及解压缩
- asp.net利用RAR实现文件压缩解压缩[转载]
- 利用二叉树的思想来实现分配和释放内存方法