jpeg入门2学习笔记

来源:互联网 发布:人工智能议论文800字 编辑:程序博客网 时间:2024/06/05 22:50
#include <stdio.h>#include "jpeglib.h"#include <setjmp.h>int main(int argc,char **argv){struct jpeg_decompress_struct cinfo;structjpeg_error_mgr jerr;FILE *infile;cinfo.err=jpeg_std_error(&jerr);jpeg_create_decompress(&cinfo);if((infile=fopen(argv[1],"rb"))==NULL){fprintf(stderr, "can't open %s\n", argv[1]);return -1;}jpeg_stdio_src(&cinfo,infile);jpeg_read_header(&cinfo,TURE);/* 源信息 */printf("image_width = %d\n", cinfo.image_width);printf("image_height = %d\n", cinfo.image_height);printf("num_components = %d\n", cinfo.num_components);// 设置解压参数,比如放大、缩小//解出来的图像大小就是scale_num/scale_denom,jpeg当前仅支持1/1, 1/2, 1/4,和1/8printf("enter M/N:\n");scanf("%d/%d", &cinfo.scale_num, &cinfo.scale_denom);printf("scale to : %d/%d\n", cinfo.scale_num, cinfo.scale_denom);jpeg_start_decompress(&cinfo);//开始解压 printf("output_with=%d\n",cinfo.ouput_width);printf("output_height = %d\n", cinfo.output_height);printf("output_components = %d\n", cinfo.output_components);//图像的颜色像素字节数cinfo.input_components(RGB图像为3,灰度图为1),// 循环调用jpeg_read_scanlines来一行一行地获得解压的数据jpeg_finish_decompress(&cinfo);//解压完毕 jpeg_destroy_decompress(&cinfo);//释放 return 0;}

原创粉丝点击