導航:首頁 > 文件處理 > c壓縮jpg

c壓縮jpg

發布時間:2024-01-22 14:44:00

『壹』 VC++得到圖像數據太大,想要壓縮後再傳輸

下載一個CxImage(開源),用它來壓縮成jpg或其它格式再傳。
也可以使用ijl。

下面是我寫的使用CxImage的例子:
#include "xImage.h"
#include "CaptureScreen.h"
#pragma comment(lib,"cximage.lib")
#pragma comment(lib,"jpeg.lib")
#pragma comment(lib,"jasper.lib")

CAPTURESCREEN_API bool __stdcall Capture(char* lpszFile,unsigned int height,unsigned int width,unsigned char jpgQuality)
{
keybd_event(VK_SNAPSHOT,0,0,0);
keybd_event(VK_SNAPSHOT,0,KEYEVENTF_KEYUP,0);
if(!IsClipboardFormatAvailable(CF_DIB))return false;

HANDLE hBitmap = NULL;
if( OpenClipboard( NULL ))
{
hBitmap = GetClipboardData(CF_DIB);
CloseClipboard();
}
if( hBitmap == NULL )return false;

CxImage image;
if( image.CreateFromHANDLE(hBitmap) == false )return false;
image.Resample(width,height,1);
image.SetJpegQuality(jpgQuality);
image.Save(lpszFile,CXIMAGE_FORMAT_JPG);

return true;
}

『貳』 如何用c語言實現壓縮圖片內存大小

是(row,col,value),這樣把所有不為零的值組成一個向量。這種存儲方式比二維數組節省了不少空間,當然還可以進一步節省,因為三元組裡面row或者col重復存儲了,一行或者一列存一次就行了,按這種思路走下去就是行壓縮存儲了。
那具體什麼是行壓縮存儲呢?行壓縮存儲的思想就是,把所有不為零的值按行訪問的順序組成一個向量,然後再把每一行值不為0的列的下標存下來,這個兩個向量的大小和稀疏矩陣中不為0的值得個數相同,當然要實現對行壓縮矩陣的訪問,還要把每一行的不為0的列的下標在第二個向量中開始的位置存下來,有人把這個叫做指針。有了這三個向量就可以實現對矩陣實現高效的按行訪問了。行壓縮存儲比三元組優秀的不僅是空間的壓縮,還有就是行訪問時的高效。三元組如果是有序的,可以二分查找來訪問一行,但是行壓縮存儲按行訪問時的時間復雜度是常數級的。 大家可以參考下面這個行壓縮矩陣示意圖:

閱讀全文

與c壓縮jpg相關的資料

熱點內容
蝦米伺服器關閉如何找到以前的歌 瀏覽:12
php自動建站 瀏覽:471
命令與征服3游俠網 瀏覽:966
騰訊雲買哪個地區伺服器 瀏覽:244
香港哪裡有app賣內地零食 瀏覽:674
編譯內核找不到工具鏈 瀏覽:447
java常見模式 瀏覽:500
典欣空調壓縮機 瀏覽:423
app如何認定許可權 瀏覽:853
兩個復數相除的角度計演算法則 瀏覽:588
電商類app開發怎麼收費 瀏覽:304
打造電子書反編譯工具 瀏覽:76
壓縮比115 瀏覽:562
pdf怎麼摳圖 瀏覽:870
霍妮pdf 瀏覽:810
反編譯VMP 瀏覽:49
hello編譯器 瀏覽:773
apk程序加密 瀏覽:597
如何給app重命名 瀏覽:606
怎麼幽默調侃程序員 瀏覽:288