libjpeg-turbo-1.2.1编译和使用

    xiaoxiao2021-12-03  20

    一、libjpeg-turbo-1.2.1

          libjpeg 是一个完全用C语言编写的库,包含了被广泛使用的JPEG解码、JPEG编码和其他的JPEG功能的实现。libjpeg-turbo 是一个专门为 x86 和 x86-64 处理器优化的高速 libjpeg 的改进版本。

    二、JPEG解码

    2.1分配和初始化一个JPEG decompression结构体

        struct jpeg_decompress_struct cinfo;      jpeg_create_decompress(&cinfo);

    2.2指定待解压的源文件

         infile = fopen(argv[1], "rb");      jpeg_stdio_src(&cinfo, infile); 2.3使用jpeg_read_header获得jpg信息

         jpeg_read_header(&cinfo, TRUE);      cinfo.image_width//jpg图片的宽度      cinfo.image_height//jpg图片的高度      cinfo.num_components//每个图片的像素值由几部分组成,如rgb就是3部分 2.4设置解压参数

        cinfo.scale_num//scale_num/scale_denom为图像相对于原图的缩放比例     cinfo.scale_denom 2.5启动解压

       jpeg_start_decompress(&cinfo);//启动jpg解压 2.6 循环调用jpeg_read_scanlines

      row_stride = cinfo.output_width * cinfo.output_components;//解压后图像的一行的字节长度   buffer = malloc(row_stride);   jpeg_read_scanlines(&cinfo, &buffer, 1);//读取图片的一行到buffer中去

    2.7释放获取的资源

     jpeg_finish_decompress(&cinfo);  jpeg_destroy_decompress(&cinfo);

    三、编译libjpeg源码

    #tar xzf libjpeg-turbo-1.2.1.tar.gz #cd libjpeg-turbo-1.2.1 #./configure --prefix=/usr/local/libjpeg --host=arm-Linux(--prefix为用户自定义的目录) #make #make install

    将/usr/local/libjpeg/lib目录下的.so文件拷贝到开发板的lib目录下 arm-linux-gcc -o jpg2rgb jpg2rgb.c -I /usr/local/libjpeg/include -L /usr/local/libjpeg/lib

    -ljpeg 将jpg2rgb拷贝到开打板上就可以运行该程序了

    四、示例程序

    所有示例程序都有详细注解,并且可以在开发板上运行http://pan.baidu.com/share/link?shareid=336261&uk=101680913

    转载请注明原文地址: https://ju.6miu.com/read-680137.html

    最新回复(0)