• 使用 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;
    }
    
  • 相关阅读:
    理解 Redis(3)
    理解 Redis(2)
    理解 Redis(1)
    git 的基本命令
    使用python实现计算器功能
    python函数说明内容格式错误
    python的小基础
    python去除读取文件中多余的空行
    数论-下属不可以和上司顶嘴!(可能是总结)
    其他-一大堆记录 (20 Dec
  • 原文地址:https://www.cnblogs.com/GyForever1004/p/8593384.html
Copyright © 2020-2023  润新知