国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > C++ > 正文

C語言實(shí)現(xiàn)BMP轉(zhuǎn)換JPG的方法

2020-05-23 14:17:56
字體:
供稿:網(wǎng)友

這篇文章主要介紹了C語言實(shí)現(xiàn)BMP轉(zhuǎn)換JPG的方法,涉及C#圖片格式轉(zhuǎn)換的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了C語言實(shí)現(xiàn)BMP轉(zhuǎn)換JPG的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:

 

 
  1. /**************************************************************************** 
  2. 名稱: jpeg.c 
  3. 功能: linux下bmp轉(zhuǎn)化為jpeg程序源代碼 
  4. 日期: 2010.01.26 
  5. 注意: 編譯時(shí)加“-ljpeg”(gcc -o bmp2jpg jpeg.c -ljpeg) 
  6. *****************************************************************************/ 
  7. #include <string.h> 
  8. #include <sys/types.h> 
  9. #include <sys/stat.h> 
  10. #include <sys/ioctl.h> 
  11. #include <sys/mman.h> 
  12. #include <linux/videodev.h> 
  13. #include <fcntl.h> 
  14. #include <unistd.h> 
  15. #include <stdio.h> 
  16. #include <errno.h> 
  17. #include <stdlib.h> 
  18. #include <signal.h> 
  19. #include <sys/timeb.h> 
  20. #include <jpeglib.h> 
  21. #define JPEG_QUALITY 95 //圖片質(zhì)量 
  22. int Bmp2Jpg(const char *bmp_file, const char *jeg_file, const int width, const int height) 
  23. FILE *fd; 
  24. int ret; 
  25. unsigned char *data; 
  26. long sizeImage; 
  27. int depth = 3; 
  28. JSAMPROW * row_pointer; 
  29. long rgb_index = 0; 
  30. int i=0; 
  31. struct jpeg_compress_struct cinfo; 
  32. struct jpeg_error_mgr jerr; 
  33. FILE *outfile;  
  34. // Read bmp image data 
  35. sizeImage = width*height*3; 
  36. data = (unsigned char*)malloc(sizeImage); 
  37. fd = fopen(bmp_file, "rb"); 
  38. if(!fd) 
  39. printf("ERROR1: Can not open the image./n"); 
  40. free(data); 
  41. return -1; 
  42. fseek(fd, 54, SEEK_SET);  
  43. ret = fread(data, sizeof(unsigned char)*sizeImage, 1, fd); 
  44. if(ret == 0) 
  45. if(ferror(fd)) 
  46. printf("/nERROR2: Can not read the pixel data./n"); 
  47. free(data); 
  48. fclose(fd); 
  49. return -1; 
  50. //Convert BMP to JPG 
  51. cinfo.err = jpeg_std_error(&jerr); 
  52. //* Now we can initialize the JPEG compression object. 
  53. jpeg_create_compress(&cinfo); 
  54. if ((outfile = fopen(jeg_file, "wb")) == NULL) 
  55. fprintf(stderr, "can't open %s/n", jeg_file); 
  56. return -1; 
  57. jpeg_stdio_dest(&cinfo, outfile); 
  58. cinfo.image_width = width; 
  59. //* image width and height, in pixels 
  60. cinfo.image_height = height; 
  61. cinfo.input_components = depth; 
  62. //* # of color components per pixel 
  63. cinfo.in_color_space = JCS_RGB; 
  64. //* colorspace of input image 
  65. jpeg_set_defaults(&cinfo); 
  66. //Now you can set any non-default parameters you wish to. 
  67. //Here we just illustrate the use of quality (quantization table) scaling: 
  68. jpeg_set_quality(&cinfo, JPEG_QUALITY, TRUE ); 
  69. //* limit to baseline-JPEG values 
  70. jpeg_start_compress(&cinfo, TRUE); 
  71. //一次寫入 
  72. int j=0; 
  73. row_pointer = malloc(height*width*3); 
  74. char * line[300]; 
  75. for(i=0;i<height;i++) 
  76. {  
  77. unsigned char * lineData = NULL; 
  78. lineData = malloc(width*3); 
  79. line[i]=lineData; 
  80. for(j=0;j<width;j++) 
  81. lineData[j*3+2] = data[rgb_index]; 
  82. rgb_index ++; 
  83. lineData[j*3+1] = data[rgb_index]; 
  84. rgb_index ++; 
  85. lineData[j*3+0] = data[rgb_index]; 
  86. rgb_index ++; 
  87. row_pointer[height-i-1] = lineData;  
  88. jpeg_write_scanlines(&cinfo, row_pointer, height); 
  89. jpeg_finish_compress(&cinfo); 
  90. jpeg_destroy_compress(&cinfo); 
  91. for (i=0; i<height; i++) 
  92. free(line[i]); 
  93. }  
  94. free(row_pointer); 
  95. free(data);  
  96. fclose(fd); 
  97. fclose(outfile); 
  98. return 0; 

希望本文所述對(duì)大家的C語言程序設(shè)計(jì)有所幫助。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
欧美日韩在线中文字幕| 99久久国产视频| 豆国产97在线|亚洲| 国产特级淫片免费看| 亚洲人在线播放| 中文av在线播放| 精品极品三级久久久久| 99在线免费观看| 亚洲欧美精品日韩欧美| 任你操在线观看| 丁香花高清在线观看完整版| 国产精品视频一区二区久久| 国产高清视频在线播放| 国产精品美女视频免费观看软件 | 中文字幕专区| 国产九九九九| 日本中文字幕在线看| 中文字幕av中文字幕| 2019中文字幕在线视频| 国产精品日日爱| 亚洲图区综合| 国产麻豆精品一区二区三区v视界| 1区2区3区在线| 亚洲成av人影片在线观看| 阿v免费在线观看| 激情在线视频播放| 久草视频国产| **三级三级97片毛片| 亚洲an天堂an在线观看| 国产小视频免费在线观看| 四虎成人免费| 精品日韩av| 国产成人精品自线拍| 久久久久国产精品嫩草影院| 在线视频观看国产| 18激情网站| 国产欧美在线观看视频| 九九热视频在线| 日韩中文字幕久久久经典网| 在线播放一区二区精品产| 中文字幕免费在线视频| 老司机精品视频一区二区| 国产成人精品实拍在线| 国产午夜电影| 国产麻豆视频| 国产香蕉在线| 国产午夜视频| 国产9色视频| 中文字幕av在线| 亚洲国产日韩成人综合天堂| av影视在线看| 欧美高清视频| 国产精品㊣新片速递bt| 午夜伦全在线观看| 国产精品bbw一区二区三区| 最近中文av字幕在线中文| 国产中文字幕在线| 最新国产在线| 精品女厕厕露p撒尿| 亚洲视频在线观看不卡| 亚洲videos| 久久久久久国产视频| 国产理论电影在线观看| 国产盗摄精品一区二区酒店| 国产日韩欧美精品一区二区三区| 国产精品视频福利一区二区 | 久草福利资源在线视频| 五月天婷婷基地| 2020中文字幕在线播放| 在线观看中文字幕| 国产自产视频| 中文国产字幕在线观看| 美女av在线播放| 国产黄色高清在线| 超碰免费在线| 在线免费观看你懂的| 国内精品不卡| 在线视频三区| 天天操天天是| www.av在线| 99久久精品免费观看国产| 国内自拍视频在线观看| 97一区二区三区| 天堂在线中文资源| 在线中文字幕资源| 自拍亚洲国产| www.香蕉视频在线观看| 精品国产白色丝袜高跟鞋| 国产中文字幕在线视频| 亚洲videos| 影音先锋中文字幕在线| 国产精品你懂的在线观看| 激情综合丁香| 久蕉依人在线视频| eeuss影院在线观看第一页| 国产精品久久久高清免费| 国产字幕在线看| 久久这里精品| 欧美专区日韩| 午夜在线观看91| 日本一二三区视频免费高清| 在线观看精品一区二区三区| 国产福利三区| 国产成人亚洲精品播放器下载| 中文字幕在线看精品乱码| 国产有码在线| 天堂在线中文资源| 天天操人人干| 国产一二三区在线观看| 午夜视频99| 五月婷婷在线观看| 国产精品爱久久久久久久小说| 中文字幕专区| 国产呻吟对白刺激无套视频在线| 免费一区二区在线观看| 欧美啪啪精品| 国产精品亚洲第五区在线| 国产精品一区二三区| 国产小视频在线播放| 国产精品久久久久久久牛牛| 精品一区二区三区免费站| 亚洲精品自产拍在线观看| 日本久久网站| 久久香蕉av| 国产三级在线播放| 精品视频三区| 久久久久久久久久久久网站| 最新国产在线精品91尤物| 91这里只有精品| gogogogo高清视频在线| 福利在线观看| 亚洲综合激情六月婷婷在线观看| www.狠狠操.com| 国产精品入口麻豆免费| 亚洲wwwwww| 国产视频资源| 免费网站看黄yyy222| 国产三级在线看| 蜜桃av网站| 精品街拍一区二区| 天堂亚洲精品| 日本电影全部在线观看网站视频| 91福利在线免费| baoyu777.永久免费视频| 中中文字幕av在线| 人人干在线视频| 国产二区视频在线观看| 黄色av电影在线播放| 91中文字幕| 国产网红在线观看| 二人午夜免费观看在线视频| eeuss影院网站免费观看| 91av福利| 国产精品久久久久久精| 中文字幕人成高视频| 国产中文字幕第一页| 日本电影在线观看| 亚洲人成影院在线| 91精品大全| 国产精品伦一区二区三区视频| 九九热在线观看 | 亚洲一本大道| 精品999视频| 999国产在线视频| 精品一二三区视频| 99在线视频观看| 99热播在线观看| 永久免费在线观看| 在线视频色在线| 亚洲最新永久观看在线| 在线观看中文| 青青草在线播放| 日本卡一卡2卡3卡4精品卡网站| 亚洲91av| 国产永久免费| 国产网友自拍电影在线 | 国产中文字幕在线| 国产美女av在线| 国产三级在线看| 69久久久久| 日韩中文字幕久久久经典网| 热99在线观看| 中文字幕在线影视资源| 中文字幕在线免费视频| 国产成人精品自线拍| a视频免费看| 最新国产在线精品91尤物| 精品一区二区三区在线观看l| 性色视频在线| 91福利在线免费| 国产超碰97| 欧美日韩综合高清一区二区| 午夜视频在线观看网站午夜视频在线| 国产免费视频在线| 国产精品第八页| 热99re久久精品这里都是免费| 99视频资源网| av中文在线| 国产亚洲精品久久久久久青梅| 在线国产一级|