日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

libjpeg(1)

發布時間:2025/3/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 libjpeg(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

開發包的話直接在網上可以下載,里面包含了頭文件 靜態庫以及動態庫!

下面說一下壓縮編碼基本的調用流程

/*圖像數據格式:*標準輸入圖像格式是像素的矩形陣列*每個像素具有相同數量的“分量”值(顏色通道)。*每個像素行是一組JSAMPLE(通常是unsigned chars)。*如果您正在使用顏色數據,則每個像素的顏色值*必須在行中相鄰; 例如,用于24位的R,G,B,R,G,B,R,G,B,... RGB顏色。**對于這個例子,我們假設這個數據結構與之匹配*我們的應用程序將圖像存儲在內存中,所以我們可以傳遞一個指向我們的圖像緩沖區。*//*JPEG壓縮的示例程序。*我們假設目標文件名 分辨率和壓縮因子被傳入*/ #include“jpeglib.h” #include <setjmp.h>void write_JPEG_file (char *filename,int image_width,int image_height, int quality,JSAMPLE *image_buffer) {/* 此結構體包含JPEG壓縮參數和指針工作空間(由JPEG庫根據需要分配)* 可以有多個這樣的結構,代表多個壓縮/解壓縮過程,一次存在。* 我們參考作為“JPEG對象”的任何一個結構(及其關聯的工作數據)*/struct jpeg_compress_struct cinfo;/* 此結構體表示JPEG錯誤處理程序* 它是單獨聲明的,因為應用程序經常要提供一個專門的錯誤處理程序* 采取簡單的方法,并使用標準的錯誤處理程序*/struct jpeg_error_mgr jerr;FILE *outfile; /* 目標文件 */JSAMPROW row_pointer[1]; /* 指向JSAMPLE的每一行的地址*/int row_stride; /* 圖像緩沖區中的物理行寬度 *//* 步驟1:分配和初始化JPEG壓縮對象* //* 我們必須首先設置錯誤處理程序,以防初始化失敗*/cinfo.err = jpeg_std_error(&jerr);/* 現在我們可以初始化JPEG壓縮對象。*/jpeg_create_compress(&cinfo);/* 步驟2:指定數據目的地(例如,文件)*//* 注意:步驟2和3可以按任一順序完成。*//* 這里我們使用庫提供的代碼將壓縮數據發送到 stdio流。* 你也可以編寫自己的代碼來做別的事情。* 使用“b”選項來fopen()需要它來編寫二進制文件。*/if ((outfile = fopen(filename, "wb")) == NULL) {fprintf(stderr, "can't open %s\n", filename);exit(1);}jpeg_stdio_dest(&cinfo, outfile);/* 步驟3:設置壓縮參數* //* 首先我們提供輸入圖像的描述。* cinfo結構的四個字段必須填寫:*/cinfo.image_width = image_width; /* 圖像寬度和高度,以像素為單位*/cinfo.image_height = image_height;cinfo.input_components = 3; /* 每像素的顏色分量*/cinfo.in_color_space = JCS_RGB; /* 輸入圖像的顏色空間* //* 現在使用庫的例程設置默認壓縮參數。*(您必須至少設置cinfo.in_color_space才能調用這個,由于默認值取決于源顏色空間。)*/jpeg_set_defaults(&cinfo);/* 現在您可以設置任何您想要的非默認參數。* 這里我們只是說明使用質量(量化表)縮放:*/jpeg_set_quality(&cinfo, quality, TRUE /*limit to baseline-JPEG values */);/* 步驟4:啟動壓縮*//* TRUE確保我們將編寫一個完整的交換JPEG文件。* 通過TRUE,除非你非常確定你在做什么。*/jpeg_start_compress(&cinfo, TRUE);/* 步驟5:while(掃描 等待寫入的每行)*//* jpeg_write_scanlines(...); *//*這里我們使用庫的狀態變量cinfo.next_scanline作為循環計數器*/row_stride = image_width * 3; /* 在image_buffer中每行的JSAMPLE */while (cinfo.next_scanline < cinfo.image_height) {/*jpeg_write_scanlines需要一組指向掃描線的指針。*這里的數組只有一個元素長,但你可以通過一次掃描線一次,如果這樣更方便。*/row_pointer[0] = & image_buffer[cinfo.next_scanline * row_stride];(void) jpeg_write_scanlines(&cinfo, row_pointer, 1);}/*步驟6:完成壓縮 */jpeg_finish_compress(&cinfo);/*在finish_compress之后,我們可以關閉輸出文件。*/fclose(outfile);/*步驟7:釋放JPEG壓縮對象* //*這是一個重要的步驟,因為它會釋放大量的內存。*/jpeg_destroy_compress(&cinfo);}


新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

總結

以上是生活随笔為你收集整理的libjpeg(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久操香蕉 | 日韩成人性视频 | 成人快手免费看片 | 播放美国生活大片 | 午夜一区二区三区在线 | 鲁片一区二区三区 | 亚洲免费中文 | 欧洲女同同性吃奶 | 一级二级毛片 | 久久精品伦理 | 一区二区三区精彩视频 | 精品人妻伦一区二区三区久久 | 中文字幕123区 | 99re6在线| 日韩毛片一级 | 亚洲精品国产手机 | 国产美女被遭强高潮免费网站 | 超碰在线中文字幕 | 国产精品嫩草久久久久 | 亚洲亚洲人成综合网络 | 日本三级一区二区三区 | 狠狠操很很干 | 亚洲人成亚洲人成在线观看 | 一区二区三区www | 少妇性生活视频 | 中文字幕免费高清在线观看 | 成人av一区二区三区 | 怡红院av在线| 天天狠天天透 | 少妇超碰 | 哺乳期给上司喂奶hd | 国产在线综合视频 | 日韩成人高清在线 | 自拍第一页| 国产精品theporn88 | 狠狠干干| 亚洲爱爱图 | 亚洲特级毛片 | av资源在线播放 | 国产成人在线视频免费观看 | 中国女人做爰视频 | 免费av网站观看 | 一区二区三区免费观看视频 | 一区二区三区免费 | 日韩视频免费在线观看 | av大片在线免费观看 | 亚洲自拍偷拍网 | 亚洲国产成人91porn | 午夜一区二区三区免费观看 | 日韩免费视频一区 | 欧美动态色图 | 丰满少妇在线观看bd | 午夜xxxx| 亚洲自拍偷拍精品 | 91丨九色丨海角社区 | 中文字幕日本一区二区 | 免费精品在线视频 | 亚洲成熟女性毛茸茸 | 超碰人人搞 | 一区二区三区在线播放视频 | 99热一区二区三区 | 青青草原影视 | 亚洲嫩草影院 | 久久久久久久久久久国产精品 | 国产老头老太作爱视频 | av在哪里看| 亚洲精品免费在线观看 | 狠狠综合久久av一区二区 | 亚洲一区二区三区香蕉 | 性开放淫合集 | 欧美午夜精品一区二区三区电影 | 成人久久久久久久 | 国产精品国产三级国产传播 | av毛片一区| av电影在线观看 | 欧美在线国产 | 久久黄色免费视频 | www.人人干 | 免费观看一区二区三区毛片 | 国产精品久久久久久一区二区三区 | 久久久精品在线观看 | 久久99中文字幕 | 69av在线视频| 韩日欧美| 亚洲午夜精品久久久久久浪潮 | 无码人妻久久一区二区三区不卡 | 天天天天天干 | 老头老太做爰xxx视频 | 日本少妇久久 | 欧美mv日韩mv国产网站app | 91福利在线视频 | 日本欧美久久久久免费播放网 | 亚洲综合在线一区二区 | 午夜影视在线观看 | 你懂的在线观看网站 | 亚洲美女av网站 | 欧美h网站 | 91免费国产 | 国产精品久久久久久久久免费相片 |