日韩性视频-久久久蜜桃-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)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 久成人| 亚洲乱码在线观看 | youjizz国产精品 | 亚洲精品综合精品自拍 | 成年精品 | 日本黄色特级片 | 国产日韩在线播放 | 欧美亚洲综合另类 | 日本一二三视频 | 一级黄色a| 久久夜精| 澳门色网| 激情亚洲网 | 国产全是老熟女太爽了 | 国产微拍精品 | 蜜臀精品一区二区三区 | 国产精品日韩一区二区 | 成人尹人 | 美丽姑娘免费观看在线观看 | 成人一级黄色 | 国产3级 | 无码不卡av东京热毛片 | 人妻 日韩精品 中文字幕 | 久久久久九九 | 免费人成年激情视频在线观看 | 欧美一级特黄aa大片 | av免费在线观看网站 | 天天噜夜夜噜 | 26uuu欧美日本| 欧美综合亚洲图片综合区 | 神马午夜视频 | 风流少妇按摩来高潮 | 欧美一级免费黄色片 | 激情中文字幕 | 国产三级久久久 | 欧美日韩视频免费观看 | 色综合天天干 | 最新极品jizzhd欧美 | 亚洲少妇激情 | 久草影视网 | 每日更新av | 图书馆的女友动漫在线观看 | 在线免费观看网站入口在哪 | 国产精品熟妇一区二区三区四区 | 欧洲亚洲天堂 | 性欧美jzjz2| 国产精品美女久久久久久久久 | 欧美高清视频在线观看 | 国产高清视频免费观看 | 日韩精品久久久久久久酒店 | 用我的手指扰乱你 | 关之琳三级全黄做爰在线观看 | 久久精品噜噜噜成人88aⅴ | 欧美日韩一区二区三区不卡视频 | 欧美在线激情视频 | 两根大肉大捧一进一出好爽视频 | 琪琪午夜伦理影院7777 | 深夜福利网站 | 欧洲一二三区 | 影音先锋在线看 | 国产孕妇孕交大片孕 | 国产日韩欧美一二三区 | 黑人性高潮 | 亚洲精选久久 | 三级在线国产 | 日本免费a级片 | 免费国产黄色片 | wwwxxx日本人 | 日韩色综合网 | 成年人小视频在线观看 | 亚洲清纯国产 | 免费成人高清 | 欧美啪啪网站 | 极品少妇在线观看 | 伊人久久九 | 伊人成人动漫 | 日本综合视频 | 欧美人和黑人牲交网站上线 | 欧美熟妇另类久久久久久多毛 | 毛片在线看片 | 九九精品免费视频 | 国产伦理一区二区三区 | 五月天婷婷色综合 | 欧美日韩国产图片 | 亚洲一卡二卡三卡 | 朝桐光av在线| 自拍偷拍激情视频 | 色综合天天干 | 自拍偷拍欧美视频 | 久久人人澡 | 婷婷射 | 久久久久亚洲AV成人无码国产 | 国产色无码精品视频国产 | 男生舔女生的屁股 | 精品国产18久久久久久 | 一区二区视频观看 | 丰满人妻一区二区三区在线 | 美女下部无遮挡 | 久久久久久久9999 |