亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言實現BMP轉換JPG的方法

2020-01-26 15:01:51
字體:
來源:轉載
供稿:網友

本文實例講述了C語言實現BMP轉換JPG的方法。分享給大家供大家參考。具體實現方法如下:

/****************************************************************************名稱:  jpeg.c功能:  linux下bmp轉化為jpeg程序源代碼日期:  2010.01.26注意:  編譯時加“-ljpeg”(gcc -o bmp2jpg jpeg.c -ljpeg)*****************************************************************************/#include <string.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/ioctl.h>#include <sys/mman.h>#include <linux/videodev.h>#include <fcntl.h>#include <unistd.h>#include <stdio.h>#include <errno.h>#include <stdlib.h>#include <signal.h>#include <sys/timeb.h>#include <jpeglib.h>#define JPEG_QUALITY 95 //圖片質量int Bmp2Jpg(const char *bmp_file, const char *jeg_file, const int width, const int height){  FILE *fd;  int ret;  unsigned char *data;  long sizeImage;  int depth = 3;  JSAMPROW * row_pointer;  long rgb_index = 0;  int i=0;  struct jpeg_compress_struct cinfo;  struct jpeg_error_mgr jerr;  FILE *outfile;              ;  // Read bmp image data  sizeImage = width*height*3;  data = (unsigned char*)malloc(sizeImage);  fd = fopen(bmp_file, "rb");  if(!fd)  {    printf("ERROR1: Can not open the image./n");    free(data);    return -1;  }  fseek(fd, 54, SEEK_SET);   ret = fread(data, sizeof(unsigned char)*sizeImage, 1, fd);  if(ret == 0)  {    if(ferror(fd))    {      printf("/nERROR2: Can not read the pixel data./n");      free(data);      fclose(fd);      return -1;    }  }  //Convert BMP to JPG  cinfo.err = jpeg_std_error(&jerr);  //* Now we can initialize the JPEG compression object.  jpeg_create_compress(&cinfo);  if ((outfile = fopen(jeg_file, "wb")) == NULL)  {    fprintf(stderr, "can't open %s/n", jeg_file);    return -1;  }  jpeg_stdio_dest(&cinfo, outfile);  cinfo.image_width = width;  //* image width and height, in pixels  cinfo.image_height = height;  cinfo.input_components = depth;  //* # of color components per pixel  cinfo.in_color_space = JCS_RGB;  //* colorspace of input image  jpeg_set_defaults(&cinfo);   //Now you can set any non-default parameters you wish to.   //Here we just illustrate the use of quality (quantization table) scaling:  jpeg_set_quality(&cinfo, JPEG_QUALITY, TRUE );  //* limit to baseline-JPEG values  jpeg_start_compress(&cinfo, TRUE);  //一次寫入  int j=0;  row_pointer = malloc(height*width*3);  char * line[300];  for(i=0;i<height;i++)  {      unsigned char * lineData = NULL;    lineData = malloc(width*3);    line[i]=lineData;    for(j=0;j<width;j++)    {      lineData[j*3+2] = data[rgb_index];      rgb_index ++;      lineData[j*3+1] = data[rgb_index];      rgb_index ++;      lineData[j*3+0] = data[rgb_index];      rgb_index ++;    }    row_pointer[height-i-1] = lineData;     }  jpeg_write_scanlines(&cinfo, row_pointer, height);  jpeg_finish_compress(&cinfo);  jpeg_destroy_compress(&cinfo);  for (i=0; i<height; i++)  {    free(line[i]);  }   free(row_pointer);  free(data);   fclose(fd);  fclose(outfile);  return 0;}

希望本文所述對大家的C語言程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人精品一区| 91色视频在线导航| 国产69精品久久久| 色综合老司机第九色激情| 亚洲美女久久久| 国产一区二区在线播放| 国产欧美精品日韩| 国产a∨精品一区二区三区不卡| 日韩电影免费观看中文字幕| 日韩欧美综合在线视频| 国产精品福利无圣光在线一区| 精品国产一区二区三区久久久| 成人自拍性视频| 一本色道久久88亚洲综合88| 国模叶桐国产精品一区| 91精品国产综合久久香蕉的用户体验| 精品网站999www| 亚洲电影免费观看高清完整版在线观看| 欧美激情在线一区| 国产成人综合亚洲| 亚洲午夜激情免费视频| 欧美激情久久久久久| 日韩精品视频免费| 精品视频久久久久久| 韩国国内大量揄拍精品视频| 另类图片亚洲另类| 欧美xxxx做受欧美| 亚洲国模精品一区| 精品美女国产在线| 日韩中文字幕国产精品| 91亚洲午夜在线| 欧美在线观看一区二区三区| 国内精品国产三级国产在线专| 精品色蜜蜜精品视频在线观看| 久久五月天色综合| 欧美国产亚洲精品久久久8v| 久久99精品久久久久久青青91| 日韩欧美精品在线观看| 成人国内精品久久久久一区| 中文字幕日韩欧美在线| 精品动漫一区二区| 国产美女被下药99| 日韩电影免费在线观看中文字幕| 在线电影欧美日韩一区二区私密| 久久艹在线视频| 亚洲香蕉成人av网站在线观看| 91久久精品久久国产性色也91| 亚洲成色999久久网站| 亚洲国产一区二区三区四区| 欧美精品激情在线观看| 韩国精品久久久999| 91亚洲永久免费精品| 亚洲黄色成人网| 日韩电影中文字幕av| 福利一区福利二区微拍刺激| 日韩免费在线看| 成人av色在线观看| 国产成+人+综合+亚洲欧洲| 国产精品欧美激情在线播放| 欧美一级大片在线观看| 欧美在线亚洲一区| 日韩电影中文字幕在线观看| 日韩毛片在线观看| 福利视频第一区| 久久久精品日本| 国产精品久久久久久久9999| 精品久久久久久久大神国产| 欧美大片欧美激情性色a∨久久| 欧美在线视频在线播放完整版免费观看| 中文字幕精品久久久久| 欧美激情二区三区| 亚洲肉体裸体xxxx137| 精品中文字幕久久久久久| 欧美日韩激情美女| 日韩大胆人体377p| 55夜色66夜色国产精品视频| 亚洲精品一区久久久久久| 亚洲mm色国产网站| 国产亚洲精品综合一区91| 欧美精品日韩www.p站| 一本久久综合亚洲鲁鲁| 亚洲黄色片网站| 欧美一级片一区| 欧美理论电影在线观看| 欧美电影免费在线观看| 性视频1819p久久| 韩国19禁主播vip福利视频| 91精品国产91久久久久久不卡| 美日韩精品免费视频| 91伊人影院在线播放| 日韩免费电影在线观看| 中文字幕亚洲无线码在线一区| 亚洲一区二区三区毛片| 57pao国产成人免费| 日韩av不卡在线| 国产91露脸中文字幕在线| 97超级碰碰碰| 国产一区二区美女视频| 日韩激情av在线播放| 久久精品人人爽| 亚洲图中文字幕| 亚洲成人精品久久久| 精品久久久一区二区| 日韩av高清不卡| 九九热精品视频国产| 成人黄色av播放免费| 在线精品视频视频中文字幕| 7777精品久久久久久| 色噜噜狠狠色综合网图区| 日韩精品中文字幕久久臀| 欧美激情videos| 欧美在线激情网| 欧美性理论片在线观看片免费| 国产精品久久久91| 欧美成在线观看| 国产成人亚洲综合青青| 高清欧美性猛交xxxx黑人猛交| 国产欧美一区二区三区在线看| 日韩毛片中文字幕| 精品动漫一区二区三区| 日韩禁在线播放| 91精品国产91久久久久久最新| 欧洲成人免费aa| 久久精品国产99国产精品澳门| 成人啪啪免费看| 亚洲天堂第一页| 九九九热精品免费视频观看网站| 亚洲三级 欧美三级| 97人洗澡人人免费公开视频碰碰碰| 精品福利视频导航| 97香蕉久久超级碰碰高清版| 久久久99免费视频| 91黑丝在线观看| 欧美乱妇高清无乱码| 97人人做人人爱| 国产成人av在线| 欧美午夜视频一区二区| 青青草99啪国产免费| 久久av在线看| 97国产精品久久| 中文字幕少妇一区二区三区| 国产精品96久久久久久又黄又硬| 亚洲男人的天堂网站| 4438全国亚洲精品在线观看视频| 97精品视频在线| 欧美日韩成人在线视频| 97超级碰碰碰久久久| 精品少妇一区二区30p| 日韩国产在线播放| 丝袜美腿亚洲一区二区| 亚洲欧美成人在线| 久久偷看各类女兵18女厕嘘嘘| 国产精品视频xxxx| 少妇高潮 亚洲精品| 久久久久这里只有精品| 日韩av网址在线| 欧美孕妇孕交黑巨大网站| 丁香五六月婷婷久久激情| 国产精品一区二区av影院萌芽| 国产日韩精品综合网站| 亚洲国产精品视频在线观看| 亚洲欧洲偷拍精品| 国产精品美乳在线观看| 精品视频久久久久久|