jpeg解码库使用实例

本文详细介绍了如何在C语言环境下使用JPEG解码库进行图片解码操作,包括库的安装、配置和基本用法。通过实例代码展示了解码过程,适合初学者和进阶开发者参考。
摘要由CSDN通过智能技术生成
jpeg库下载地址:
    http://www.ijg.org/

交叉编译三部曲:
    A ./configure --host=arm-linux-gcc --prefix=/home/flying/jpeg-install
    B  make
    C  make install
jpeg库是解压jpeg/jpg图片或将图片压缩为jpeg/jpg格式所用到的库,使用起来比较简单!

jpeg/jpg解码过程:

    1. 创建jpeg对象和错误处理对象
        struct jpeg_decompress_struct cinfo;
        struct jpeg_error_mgr         jerr; 

    2. 将错误处理对象绑定到jpeg对象上
        EXTERN(struct jpeg_error_mgr *) jpeg_std_error
        JPP((struct jpeg_error_mgr * err));

    3. 初始化jpeg对象
        #define jpeg_create_compress(cinfo) \
    jpeg_CreateCompress((cinfo), JPEG_LIB_VERSION, \
                        (size_t) sizeof(struct jpeg_compress_struct))

    4. 指定解压数据源(有两种方式)
        a. EXTERN(void) jpeg_mem_src JPP((j_decompress_ptr cinfo, const unsigned char * inbuffer, unsigned long insize));
            参数一: jpeg对象地址
            参数二: 储存jpeg数据源缓冲区
            参数三: 缓冲区数据源大小

        b. EXTERN(void) jpeg_stdio_src JPP((j_decompress_ptr cinfo, FILE * infile));
            参数一: jpeg对象地址
            参数二: 要解压的jpeg图片的文件指针

    5. 填充cinfo对象的缺省信息,常见的可用信息包括图像的
       宽:       cinfo.image_width,
       高:       cinfo.image_height,
       色彩空间:  cinfo.jpeg_color_space,
       颜色通道数: cinfo.num_components等。
       EXTERN(int) jpeg_read_header JPP((j_decompress_ptr cinfo,
                                  boolean require_image));

    6. 为解压设定参数**(依情况而定)**
        比如解压的图片与原图的缩放比例为1/
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值