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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

libjpeg-turbo(2)

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

主要是介紹一下API,基本就是頭文件里面的!

/*** 創建TurboJPEG壓縮器實例。** @返回新創建的實例的句柄,如果出現錯誤則返回NULL* 錯誤請使用tjGetErrorStr()*/ tjhandle DLLCALL tjInitCompress(void);


/*** 將RGB,灰度或CMYK圖像壓縮為JPEG圖像。* @handle 處理TurboJPEG壓縮器或解壓實例的句柄* @srcBuf 指向包含YUV平面圖像的圖像緩沖區的指針* @width 源圖像的寬度(以像素為單位)* @pitch 源圖像中每一行的字節數,默認0即可* @height 源圖像的高度* @pixelFormat 源中使用的像素格式,參見TJPF,默認TJPF_RGB* @jpegBuf 指向要接收的圖像緩沖區的指針的地址* @jpegSize 指向接受圖像的長度* @jpegSubsamp 在使用時使用的色度次抽樣的水平,參照TJSAMP,默認TJSAMP_422* @jpegQual 生成的JPEG圖像的圖像質量(1 =最差,100 =最佳)* @flags 標記位,默認為0* @如果成功返回0,如果發生錯誤則返回-1(請參閱#tjGetErrorStr())。*/ int DLLCALL tjCompress2(tjhandle handle,const unsigned char * srcBuf,int width,int pitch,int height,int pixelFormat,unsigned char ** jpegBuf,unsigned long * jpegSize,int jpegSubsamp,int jpegQual,int flags);


/***檢索有關JPEG圖像的信息,無需解壓縮。* @handle 處理TurboJPEG實例的句柄* @jpegBuf jpegBuf指向包含JPEG圖像的緩沖區的指針* @jpegSize JPEG圖像的大小(以字節為單位)* @width 圖像的寬度* @height 圖像的高度* @jpegSubsamp 代表JPEG圖像壓縮時使用的色度子采樣級別 參考TJSAMP“色度子采樣選項”* @jpegColorspace 代表JPEG顏色空間常量,參考 TJCS* @如果成功返回0,如果發生錯誤則返回-1 */ int DLLCALL tjDecompressHeader3(tjhandle handle,const unsigned char *jpegBuf, unsigned long jpegSize, int *width,int *height, int *jpegSubsamp, int *jpegColorspace);


/***銷毀TurboJPEG壓縮器實例。* @handle 處理TurboJPEG壓縮器的一個句柄* @如果成功返回0,如果發生錯誤則返回-1(請參閱#tjGetErrorStr())。*/ int DLLCALL tjDestroy(tjhandle handle);
/***返回一個描述性錯誤消息,解釋為什么最后一個命令失敗。*/ DLLEXPORT char* DLLCALL tjGetErrorStr(void);

/***為TurboJPEG分配圖像緩沖區。你應該永遠使用此函數為tjCompress2和tjTransform分配JPEG目標緩沖區,*除非您禁用自動緩沖區通過設置TJFLAG_NOREALLOC。)*@bytes 要分配的字節數*返回一個指向指定數量的新分配緩沖區的指針*/ DLLEXPORT unsigned char * DLLCALL tjAlloc(int bytes);/***釋放先前由TurboJPEG分配的圖像緩沖區。你應該永遠使用此功能來釋放自動的JPEG目標緩沖區*@buffer 緩沖區的緩沖區地址*/ DLLEXPORT void DLLCALL tjFree(unsigned char * buffer);
/*** 將JPEG圖像解壓縮為RGB,灰度或CMYK圖像* @handle 處理TurboJPEG壓縮器或解壓實例的句柄* @jpegBuf 指向包含要解壓縮的JPEG圖像的緩沖區的指針* @jpegSize JPEG圖像的大小(以字節為單位)* @dstBuf 指向將接收解壓縮的圖像緩沖區的指針* @width 目標圖像的所需寬度* @pitch 默認0即可* @height 目標圖像的高度* @pixelFormat 像素格式,參見TJPF,默認TJPF_RGB* @flags 默認0* @如果成功返回0,如果發生錯誤則返回-1(請參閱#tjGetErrorStr())。*/ DLLEXPORT int DLLCALL tjDecompress2(tjhandle handle,const unsigned char *jpegBuf, unsigned long jpegSize, unsigned char *dstBuf,int width, int pitch, int height, int pixelFormat, int flags);
/***使用給定參數保存JPEG圖像所需的緩沖區的最大大小(以字節為單位)。*這個函數返回的字節數大于未壓縮源映像的大小。*這樣做的原因是JPEG格式使用16位的系數,因此當轉換為JPEG格式時,使用非常高的高頻率內容來擴展而不是壓縮的高質量的JPEG圖像是可能的。*這樣的圖像代表了一個非常罕見的情況,但是由于在壓縮之前無法預測JPEG圖像的大小,所以必須處理這個情況。**@width 圖像的寬度*@height 圖像的高度*@jpegSubsamp 要使用的色度子采樣的級別生成JPEG圖像(參見TJSAMP“色度子采樣選項”。)* @返回保存所需的緩沖區的最大大小(以字節為單位)* image,如果參數超出范圍,則為-1。*/ DLLEXPORT unsigned long DLLCALL tjBufSize(int width,int height,int jpegSubsamp);
/***用給定參數保存YUV平面圖像所需的緩沖區的大小(以字節為單位)。**@width 圖像的寬度(以像素為單位)*@pad 圖像的每一平面上的每一行的寬度都被填充到這個字節數的最近的倍數中(必須是2的冪)。*@height 圖像的高度*@subsamp 要使用的色度子采樣的級別生成JPEG圖像(參見TJSAMP“色度子采樣選項”。)** @返回保存圖像所需的緩沖區大小(以字節為單位),或-1如果參數超出范圍。*/ DLLEXPORT unsigned long DLLCALL tjBufSizeYUV2(int width,int pad,int height,int subsamp);


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

總結

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

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