锘??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美影院午夜播放,国产精品日韩精品,久久精品日韩欧美http://m.shnenglu.com/tdweng/category/16051.htmlzh-cnSun, 07 Apr 2013 00:51:28 GMTSun, 07 Apr 2013 00:51:28 GMT60BMP鍥劇墖鏄劇ずhttp://m.shnenglu.com/tdweng/articles/146009.html蹇冪窘蹇冪窘Mon, 09 May 2011 03:13:00 GMThttp://m.shnenglu.com/tdweng/articles/146009.htmlhttp://m.shnenglu.com/tdweng/comments/146009.htmlhttp://m.shnenglu.com/tdweng/articles/146009.html#Feedback0http://m.shnenglu.com/tdweng/comments/commentRss/146009.htmlhttp://m.shnenglu.com/tdweng/services/trackbacks/146009.html1.鍦⊿tatic鎺т歡涓樉紺築MP 
      

棣栧厛錛岀粰Static鎺т歡娣誨姞涓涓狢ontrol鍙橀噺錛圛D瑕佹敼浜嗕互鍚庢墠鑳芥坊鍔犲彉閲忥紝涔熷氨鏄ID涓嶈兘涓篒DC_STATIC錛夛紝鏈緥涓簃_staticTest銆?br>鐒跺悗錛岀敤ModifyStyle鍑芥暟淇敼Static鎺т歡鐨凷tyle錛岃瀹冨彲浠ユ樉紺哄浘鐗囷細

m_staticTest.ModifyStyle(0, SS_BITMAP | SS_CENTERIMAGE);

鏈鍚庯紝灝辨槸Load鏂囦歡鏄劇ず鍑烘潵錛?/p>

CRect rect;
m_staticTest.GetWindowRect(&rect);

//  涓嬮潰鐨勬柟娉曟槸鎸夌収Static鎺т歡鐨勫ぇ灝忔樉紺篵mp錛屽鏋滆瀹夎鍥劇墖瀹為檯澶у皬鏄劇ず錛岀敤榪欎釜鏂規硶Load鍥劇墖錛?br>//  HBITMAP hBmp = (HBITMAP)::LoadImage(0, _T("D:\\test.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
HBITMAP hBmp = (HBITMAP)::LoadImage(0, _T("D:\\test.bmp"), IMAGE_BITMAP, rect.Width(), rect.Height(), LR_LOADFROMFILE);

m_staticTest.SetBitmap(hBmp);
DeleteObject(hBmp);



蹇冪窘 2011-05-09 11:13 鍙戣〃璇勮
]]>
BMP鏂囦歡緇撴瀯http://m.shnenglu.com/tdweng/articles/140512.html蹇冪窘蹇冪窘Wed, 23 Feb 2011 06:12:00 GMThttp://m.shnenglu.com/tdweng/articles/140512.htmlhttp://m.shnenglu.com/tdweng/comments/140512.htmlhttp://m.shnenglu.com/tdweng/articles/140512.html#Feedback0http://m.shnenglu.com/tdweng/comments/commentRss/140512.htmlhttp://m.shnenglu.com/tdweng/services/trackbacks/140512.html1錛?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">BMP鏂囦歡緇勬垚
BMP鏂囦歡鐢辨枃浠跺ご銆佷綅鍥句俊鎭ご銆侀鑹蹭俊鎭拰鍥懼艦鏁版嵁鍥涢儴鍒嗙粍鎴愩?br>2錛?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">BMP鏂囦歡澶?14瀛楄妭)
BMP鏂囦歡澶存暟鎹?strong style="COLOR: black; BACKGROUND-COLOR: #99ff99">緇撴瀯鍚湁BMP鏂囦歡鐨勭被鍨嬨佹枃浠跺ぇ灝忓拰浣嶅浘璧峰浣嶇疆絳変俊鎭?br>鍏?strong style="COLOR: black; BACKGROUND-COLOR: #99ff99">緇撴瀯瀹氫箟濡備笅:
typedef struct tagBITMAPFILEHEADER
{
WORDbf Type; // 浣嶅浘鏂囦歡鐨勭被鍨嬶紝蹇呴』涓?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">BMP(0-1瀛楄妭)
DWORD bfSize; // 浣嶅浘鏂囦歡鐨勫ぇ灝忥紝浠ュ瓧鑺備負鍗曚綅(2-5瀛楄妭)
WORD bfReserved1; // 浣嶅浘鏂囦歡淇濈暀瀛楋紝蹇呴』涓?(6-7瀛楄妭)
WORD bfReserved2; // 浣嶅浘鏂囦歡淇濈暀瀛楋紝蹇呴』涓?(8-9瀛楄妭)
DWORD bfOffBits; // 浣嶅浘鏁版嵁鐨勮搗濮嬩綅緗紝浠ョ浉瀵逛簬浣嶅浘(10-13瀛楄妭)
// 鏂囦歡澶寸殑鍋忕Щ閲忚〃紺猴紝浠ュ瓧鑺備負鍗曚綅
} BITMAPFILEHEADER;
3錛氫綅鍥句俊鎭ご(40瀛楄妭)
BMP浣嶅浘淇℃伅澶存暟鎹敤浜庤鏄庝綅鍥劇殑灝哄絳変俊鎭?br>typedef struct tagBITMAPINFOHEADER{
DWORD biSize; // 鏈?strong style="COLOR: black; BACKGROUND-COLOR: #99ff99">緇撴瀯鎵鍗犵敤瀛楄妭鏁?14-17瀛楄妭)
LONG biWidth; // 浣嶅浘鐨勫搴︼紝浠ュ儚绱犱負鍗曚綅(18-21瀛楄妭)
LONG biHeight; // 浣嶅浘鐨勯珮搴︼紝浠ュ儚绱犱負鍗曚綅(22-25瀛楄妭)
WORD biPlanes; // 鐩爣璁懼鐨勭駭鍒紝蹇呴』涓?(26-27瀛楄妭)
WORD biBitCount;// 姣忎釜鍍忕礌鎵闇鐨勪綅鏁幫紝蹇呴』鏄?(鍙岃壊),(28-29瀛楄妭)
// 4(16鑹?錛?(256鑹?鎴?4(鐪熷僵鑹?涔嬩竴
DWORD biCompression; // 浣嶅浘鍘嬬緝綾誨瀷錛屽繀欏繪槸 0(涓嶅帇緙?,(30-33瀛楄妭)
// 1(BI_RLE8鍘嬬緝綾誨瀷)鎴?(BI_RLE4鍘嬬緝綾誨瀷)涔嬩竴
DWORD biSizeImage; // 浣嶅浘鐨勫ぇ灝忥紝浠ュ瓧鑺備負鍗曚綅(34-37瀛楄妭)
LONG biXPelsPerMeter; // 浣嶅浘姘村鉤鍒嗚鯨鐜囷紝姣忕背鍍忕礌鏁?38-41瀛楄妭)
LONG biYPelsPerMeter; // 浣嶅浘鍨傜洿鍒嗚鯨鐜囷紝姣忕背鍍忕礌鏁?42-45瀛楄妭)
DWORD biClrUsed;// 浣嶅浘瀹為檯浣跨敤鐨勯鑹茶〃涓殑棰滆壊鏁?46-49瀛楄妭)
DWORD biClrImportant;// 浣嶅浘鏄劇ず榪囩▼涓噸瑕佺殑棰滆壊鏁?50-53瀛楄妭)
} BITMAPINFOHEADER;
4錛氶鑹茶〃
棰滆壊琛ㄧ敤浜庤鏄庝綅鍥句腑鐨勯鑹詫紝瀹冩湁鑻ュ共涓〃欏癸紝姣忎竴涓〃欏規槸涓涓猂GBQUAD綾誨瀷鐨?strong style="COLOR: black; BACKGROUND-COLOR: #99ff99">緇撴瀯錛屽畾涔変竴縐嶉鑹層俁GBQUAD緇撴瀯鐨勫畾涔夊涓?
typedef struct tagRGBQUAD {
BYTE rgbBlue;// 钃濊壊鐨勪寒搴?鍊艱寖鍥翠負0-255)
BYTE rgbGreen; // 緇胯壊鐨勪寒搴?鍊艱寖鍥翠負0-255)
BYTE rgbRed; // 綰㈣壊鐨勪寒搴?鍊艱寖鍥翠負0-255)
BYTE rgbReserved;// 淇濈暀錛屽繀欏諱負0
} RGBQUAD;
棰滆壊琛ㄤ腑RGBQUAD緇撴瀯鏁版嵁鐨勪釜鏁版湁biBitCount鏉ョ‘瀹?
褰揵iBitCount=1,4,8鏃訛紝鍒嗗埆鏈?,16,256涓〃欏?
褰揵iBitCount=24鏃訛紝娌℃湁棰滆壊琛ㄩ」銆?br>浣嶅浘淇℃伅澶村拰棰滆壊琛ㄧ粍鎴愪綅鍥句俊鎭紝BITMAPINFO緇撴瀯瀹氫箟濡備笅:
typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader; // 浣嶅浘淇℃伅澶?br>RGBQUAD bmiColors[1]; // 棰滆壊琛?br>} BITMAPINFO;
5錛氫綅鍥炬暟鎹?br>浣嶅浘鏁版嵁璁板綍浜嗕綅鍥劇殑姣忎竴涓儚绱犲鹼紝璁板綍欏哄簭鏄湪鎵弿琛屽唴鏄粠宸﹀埌鍙?鎵弿琛屼箣闂存槸浠庝笅鍒頒笂銆備綅鍥劇殑涓涓儚绱犲兼墍鍗犵殑瀛楄妭鏁?
褰揵iBitCount=1鏃訛紝8涓儚绱犲崰1涓瓧鑺?
褰揵iBitCount=4鏃訛紝2涓儚绱犲崰1涓瓧鑺?
褰揵iBitCount=8鏃訛紝1涓儚绱犲崰1涓瓧鑺?
褰揵iBitCount=24鏃?1涓儚绱犲崰3涓瓧鑺?
Windows瑙勫畾涓涓壂鎻忚鎵鍗犵殑瀛楄妭鏁板繀欏繪槸
4鐨勫嶆暟(鍗充互long涓哄崟浣?,涓嶈凍鐨勪互0濉厖錛?br>biSizeImage = ((((bi.biWidth * bi.biBitCount) + 31) & ~31) / 8) * bi.biHeight;
鍏蜂綋鏁版嵁涓句緥錛?br>濡傛煇BMP鏂囦歡寮澶達細
4D42 4690 0000 0000 0000 4600 0000 2800 0000 8000 0000 9000 0000 0100*1000 0300 0000 0090 0000 A00F 0000 A00F 0000 0000 0000 0000 0000*00F8 0000 E007 0000 1F00 0000 0000 0000*02F1 84F1 04F1 84F1 84F1 06F2 84F1 06F2 04F2 86F2 06F2 86F2 86F2 .... ....
BMP鏂囦歡鍙垎涓哄洓涓儴鍒嗭細浣嶅浘鏂囦歡澶淬佷綅鍥句俊鎭ご銆佸僵鑹叉澘銆佸浘鍍忔暟鎹樀鍒楋紝鍦ㄤ笂鍥句腑宸茬敤*鍒嗛殧銆?br>涓銆佸浘鍍忔枃浠跺ご
1錛?錛?榪欓噷鐨勬暟瀛椾唬琛ㄧ殑鏄?瀛?,鍗充袱涓瓧鑺?涓嬪悓)鍥懼儚鏂囦歡澶淬?x4D42=’BM’錛岃〃紺烘槸Windows鏀寔鐨?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">BMP鏍煎紡銆?br>2錛?-3錛氭暣涓枃浠跺ぇ灝忋?690 0000錛屼負00009046h=36934銆?br>3錛?-5錛氫繚鐣欙紝蹇呴』璁劇疆涓?銆?br>4錛?-7錛氫粠鏂囦歡寮濮嬪埌浣嶅浘鏁版嵁涔嬮棿鐨勫亸縐婚噺銆?600 0000錛屼負00000046h=70錛屼笂闈㈢殑鏂囦歡澶村氨鏄?5瀛?70瀛楄妭銆?br>浜屻佷綅鍥句俊鎭ご
5錛?-9錛氫綅鍥懼浘淇℃伅澶撮暱搴︺?br>6錛?0-11錛氫綅鍥懼搴︼紝浠ュ儚绱犱負鍗曚綅銆?000 0000錛屼負00000080h=128銆?br>7錛?2-13錛氫綅鍥鵑珮搴︼紝浠ュ儚绱犱負鍗曚綅銆?000 0000錛屼負00000090h=144銆?br>8錛?4錛氫綅鍥劇殑浣嶉潰鏁幫紝璇ュ兼繪槸1銆?100錛屼負0001h=1銆?br>9錛?5錛氭瘡涓儚绱犵殑浣嶆暟銆傛湁1錛堝崟鑹詫級錛?錛?6鑹詫級錛?錛?56鑹詫級錛?6錛?4K鑹詫紝楂樺僵鑹詫級錛?4錛?6M鑹詫紝鐪熷僵鑹詫級錛?2錛?096M鑹詫紝澧炲己鍨嬬湡褰╄壊錛夈?000涓?010h=16銆?br>10錛?6-17錛氬帇緙╄鏄庯細鏈?錛堜笉鍘嬬緝錛夛紝1錛圧LE 8錛?浣峈LE鍘嬬緝錛夛紝2錛圧LE 4錛?浣峈LE鍘嬬緝錛?錛圔itfields錛屼綅鍩熷瓨鏀撅級銆俁LE綆鍗曞湴璇存槸閲囩敤鍍忕礌鏁?鍍忕礌鍊肩殑鏂瑰紡榪涜鍘嬬緝銆俆408閲囩敤鐨勬槸浣嶅煙瀛樻斁鏂瑰紡錛岀敤涓や釜瀛楄妭琛ㄧず涓涓儚绱狅紝浣嶅煙鍒嗛厤涓簉5b6g5銆傚浘涓?300 0000涓?0000003h=3銆?br>11錛?8-19錛氱敤瀛楄妭鏁拌〃紺虹殑浣嶅浘鏁版嵁鐨勫ぇ灝忥紝璇ユ暟蹇呴』鏄?鐨勫嶆暟錛屾暟鍊間笂絳変簬錛?#8805;浣嶅浘瀹藉害鐨勬渶灝忕殑4鐨勫嶆暟錛?#215;浣嶅浘楂樺害×姣忎釜鍍忕礌浣嶆暟銆?090 0000涓?0009000h=80×90×2h=36864銆?br>12錛?0-21錛氱敤璞$礌/綾寵〃紺虹殑姘村鉤鍒嗚鯨鐜囥侫00F 0000涓?000 0FA0h=4000銆?br>13錛?2-23錛氱敤璞$礌/綾寵〃紺虹殑鍨傜洿鍒嗚鯨鐜囥侫00F 0000涓?000 0FA0h=4000銆?br>14錛?4-25錛氫綅鍥句嬌鐢ㄧ殑棰滆壊绱㈠紩鏁般傝涓?鐨勮瘽錛屽垯璇存槑浣跨敤鎵鏈夎皟鑹叉澘欏廣?br>15錛?6-27錛氬鍥捐薄鏄劇ず鏈夐噸瑕佸獎鍝嶇殑棰滆壊绱㈠紩鐨勬暟鐩傚鏋滄槸0錛岃〃紺洪兘閲嶈銆?br>涓夈佸僵鑹叉澘
16錛?8-....(涓嶇‘瀹?錛氬僵鑹叉澘瑙勮寖銆傚浜庤皟鑹叉澘涓殑姣忎釜琛ㄩ」錛岀敤涓嬭堪鏂規硶鏉ユ弿榪癛GB鐨勫鹼細
1瀛楄妭鐢ㄤ簬钃濊壊鍒嗛噺
1瀛楄妭鐢ㄤ簬緇胯壊鍒嗛噺
1瀛楄妭鐢ㄤ簬綰㈣壊鍒嗛噺
1瀛楄妭鐢ㄤ簬濉厖絎?璁劇疆涓?)
瀵逛簬24-浣嶇湡褰╄壊鍥懼儚灝變笉浣跨敤褰╄壊鏉匡紝鍥犱負浣嶅浘涓殑RGB鍊煎氨浠h〃浜嗘瘡涓薄绱犵殑棰滆壊銆?br>濡傦紝褰╄壊鏉夸負00F8 0000 E007 0000 1F00 0000 0000 0000錛屽叾涓細
00FB 0000涓篎B00h=1111100000000000錛堜簩榪涘埗錛夛紝鏄摑鑹插垎閲忕殑鎺╃爜銆?br>E007 0000涓?07E0h=0000011111100000錛堜簩榪涘埗錛夛紝鏄豢鑹插垎閲忕殑鎺╃爜銆?br>1F00 0000涓?01Fh=0000000000011111錛堜簩榪涘埗錛夛紝鏄孩鑹插垎閲忕殑鎺╃爜銆?br>0000 0000鎬昏緗負0銆?br>灝嗘帺鐮佽窡鍍忕礌鍊艱繘琛?#8220;涓?#8221;榪愮畻鍐嶈繘琛岀Щ浣嶆搷浣滃氨鍙互寰楀埌鍚勮壊鍒嗛噺鍊箋傜湅鐪嬫帺鐮侊紝灝卞彲浠ユ槑鐧戒簨瀹炰笂鍦ㄦ瘡涓儚绱犲肩殑涓や釜瀛楄妭16浣嶄腑錛屾寜浠庨珮鍒頒綆鍙?銆?銆?浣嶅垎鍒氨鏄痳銆乬銆乥鍒嗛噺鍊箋傚彇鍑哄垎閲忓煎悗鎶妑銆乬銆乥鍊煎垎鍒箻浠?銆?銆?灝卞彲浠ヨˉ榻愮涓垎閲忎負涓涓瓧鑺傦紝鍐嶆妸榪欎笁涓瓧鑺傛寜rgb緇勫悎錛屾斁鍏ュ瓨鍌ㄥ櫒錛堝悓鏍瘋鍙嶅簭錛夛紝灝卞彲浠ヨ漿鎹負24浣嶆爣鍑?strong style="COLOR: black; BACKGROUND-COLOR: #a0ffff">BMP鏍煎紡浜嗐?br>鍥涖佸浘鍍忔暟鎹樀鍒?br>17)27(鏃犺皟鑹叉澘)-錛庯紟錛庯細姣忎袱涓瓧鑺傝〃紺轟竴涓儚绱犮傞樀鍒椾腑鐨勭涓涓瓧鑺傝〃紺轟綅鍥懼乏涓嬭鐨勮薄绱狅紝鑰屾渶鍚庝竴涓瓧鑺傝〃紺轟綅鍥懼彸涓婅鐨勮薄绱犮?br>浜斻佸瓨鍌ㄧ畻娉?br>BMP鏂囦歡閫氬父鏄笉鍘嬬緝鐨勶紝鎵浠ュ畠浠氬父姣斿悓涓騫呭浘鍍忕殑鍘嬬緝鍥懼儚鏂囦歡鏍煎紡瑕佸ぇ寰堝銆備緥濡傦紝涓涓?00×600鐨?4浣嶅嚑涔庡崰鎹?.4MB絀洪棿銆傚洜姝ゅ畠浠氬父涓嶉傚悎鍦ㄥ洜鐗圭綉鎴栬呭叾瀹冧綆閫熸垨鑰呮湁瀹歸噺闄愬埗鐨勫獟浠嬩笂榪涜浼犺緭銆傛牴鎹鑹叉繁搴︾殑涓嶅悓錛屽浘鍍忎笂鐨勪竴涓儚绱犲彲浠ョ敤涓涓垨鑰呭涓瓧鑺傝〃紺猴紝瀹冪敱n/8鎵紜畾錛坣鏄綅娣卞害錛?瀛楄妭鍖呭惈8涓暟鎹綅錛夈傚浘鐗囨祻瑙堝櫒絳夊熀浜庡瓧鑺傜殑ASCII鍊艱綆楀儚绱犵殑棰滆壊錛岀劧鍚庝粠璋冭壊鏉夸腑璇誨嚭鐩稿簲鐨勫箋傛洿涓鴻緇嗙殑淇℃伅璇峰弬闃呬笅闈㈠叧浜庝綅鍥炬枃浠剁殑閮ㄥ垎銆?n浣?n縐嶉鑹茬殑浣嶅浘榪戜技瀛楄妭鏁板彲浠ョ敤涓嬮潰鐨勫叕寮忚綆楋細 BMP鏂囦歡澶у皬綰︾瓑浜?54+4*2鐨刵嬈℃柟+錛坵*h*n)/8
錛屽叾涓珮搴﹀拰瀹藉害閮芥槸鍍忕礌鏁般傞渶瑕佹敞鎰忕殑鏄笂闈㈠叕寮忎腑鐨?4鏄綅鍥炬枃浠剁殑鏂囦歡澶達紝鏄僵鑹茶皟鑹叉澘鐨勫ぇ灝忋傚彟澶栭渶瑕佹敞鎰忕殑鏄繖鏄竴涓繎浼煎鹼紝瀵逛簬n浣嶇殑浣嶅浘鍥懼儚鏉ヨ錛屽敖綆″彲鑳芥湁鏈澶?n涓鑹詫紝涓涓壒瀹氱殑鍥懼儚鍙兘騫朵笉浼氫嬌鐢ㄨ繖浜涙墍鏈夌殑棰滆壊銆傜敱浜庡僵鑹茶皟鑹叉澘浠呬粎瀹氫箟浜嗗浘鍍忔墍鐢ㄧ殑棰滆壊錛屾墍浠ュ疄闄呯殑褰╄壊璋冭壊鏉垮皢灝忎簬銆傚鏋滄兂鐭ラ亾榪欎簺鍊兼槸濡備綍寰楀埌鐨勶紝璇峰弬鑰冧笅闈㈡枃浠舵牸寮忕殑閮ㄥ垎銆傜敱浜庡瓨鍌ㄧ畻娉曟湰韜喅瀹氱殑鍥犵礌錛屾牴鎹嚑涓浘鍍忓弬鏁扮殑涓嶅悓璁$畻鍑虹殑澶у皬涓庡疄闄呯殑鏂囦歡澶у皬灝嗕細鏈変竴浜涚粏灝忕殑宸埆銆?

蹇冪窘 2011-02-23 14:12 鍙戣〃璇勮
]]>
錛堣漿甯栵級jpeglib浣跨敤鎸囧崡 http://m.shnenglu.com/tdweng/articles/140452.html蹇冪窘蹇冪窘Tue, 22 Feb 2011 08:32:00 GMThttp://m.shnenglu.com/tdweng/articles/140452.htmlhttp://m.shnenglu.com/tdweng/comments/140452.htmlhttp://m.shnenglu.com/tdweng/articles/140452.html#Feedback0http://m.shnenglu.com/tdweng/comments/commentRss/140452.htmlhttp://m.shnenglu.com/tdweng/services/trackbacks/140452.html鎮ㄥ彲浠ュ埌www.ijg.org緗戠珯涓嬭澆libjpeg鐨勬簮鐮侊紝 IJG JPEG Library灝辨槸jpeg鍘嬬緝搴擄紝鏄互婧愮爜鐨勫艦寮忔彁渚涚粰杞歡寮鍙戜漢鍛樼殑錛屽綋鐒跺湪杞歡鍖呴噷涔熸湁緙栬瘧濂界殑搴撴枃浠訛紝鎴戜滑榪欓噷灝卞彧鐢ㄥ埌鍏朵腑鐨刲ibjpeg.lib錛宩config.h錛宩morecfg.h錛宩peglib.h榪欏嚑涓枃浠訛紝涓嬮潰鎴戝氨浠嬬粛涓涓嬫庢牱鍦ㄨ嚜宸辯殑紼嬪簭閲屽祵鍏ュ浘鍍忓帇緙╁姛鑳姐?/p>

銆銆涓銆佸緩绔嬬紪璇戠幆澧?/p>

銆銆鎵璋撳緩绔嬬紪璇戠幆澧冿紝鍏跺疄闈炲父綆鍗曪紝灝辨槸鎶婁笂闈㈡彁鍒扮殑錛斾釜鏂囦歡鎷瘋礉鍒頒綘鐨勯」鐩枃浠跺す涓嬶紝鎶妉ibjpeg.lib娣誨姞鍒頒綘鐨勯」鐩腑錛岀劧鍚庡湪浣犲畬鎴愬帇緙╁姛鑳界殑閭d釜鏂囦歡閲屽姞鍏?include "jpeglib.h"錛岄渶瑕佹敞鎰忕殑鏄紝libjpeg.lib鏄敤c璇█寮鍙戠殑錛屽鏋滆鐢ㄥ湪浣犵殑C++紼嬪簭閲岋紝闇瑕佺敤鍒癳xtern "C"錛屽涓嬶細

// TestLibjpeg.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "memory.h"
extern "C" {
 #include "jpeglib.h"
}

銆銆浜屻佸帇緙╂楠?/p>

銆銆錛戙佺敵璇峰茍鍒濆鍖杍peg鍘嬬緝瀵硅薄錛屽悓鏃惰鎸囧畾閿欒澶勭悊鍣?/p>

 struct jpeg_compress_struct jcs;

 // 澹版槑閿欒澶勭悊鍣紝騫惰祴鍊肩粰jcs.err鍩?br>  struct jpeg_error_mgr jem;
  jcs.err = jpeg_std_error(&jem);

  jpeg_create_compress(&jcs);

銆銆錛掋佹寚瀹氬帇緙╁悗鐨勫浘鍍忔墍瀛樻斁鐨勭洰鏍囨枃浠訛紝娉ㄦ剰錛岀洰鏍囨枃浠跺簲浠ヤ簩榪涘埗妯″紡鎵撳紑

 f=fopen("03.jpg","wb");
  if (f==NULL)
  {
    delete [] data;
    delete [] pDataConv;
    return 0;
  }
  jpeg_stdio_dest(&jcs, f);

銆銆錛撱佽緗帇緙╁弬鏁幫紝涓昏鍙傛暟鏈夊浘鍍忓銆侀珮銆佽壊褰╅氶亾鏁幫紙錛戯細绱㈠紩鍥懼儚錛岋紦錛氬叾浠栵級錛岃壊褰╃┖闂達紙JCS_GRAYSCALE琛ㄧず鐏板害鍥撅紝JCS_RGB琛ㄧず褰╄壊鍥懼儚錛夛紝鍘嬬緝璐ㄩ噺絳夛紝濡備笅錛?/p>

  jcs.image_width = nWidth;    // 涓哄浘鐨勫鍜岄珮錛屽崟浣嶄負鍍忕礌
  jcs.image_height = nHeight;
  jcs.input_components = 1;   // 鍦ㄦ涓?,琛ㄧず鐏板害鍥撅紝 濡傛灉鏄僵鑹蹭綅鍥撅紝鍒欎負3
  jcs.in_color_space = JCS_GRAYSCALE; //JCS_GRAYSCALE琛ㄧず鐏板害鍥撅紝JCS_RGB琛ㄧず褰╄壊鍥懼儚

  jpeg_set_defaults(&jcs);
 jpeg_set_quality (&jcs, 80, true);

闇瑕佹敞鎰忕殑鏄紝jpeg_set_defaults鍑芥暟涓瀹氳絳夎緗ソ鍥懼儚瀹姐侀珮銆佽壊褰╅氶亾鏁拌鑹插僵絀洪棿鍥涗釜鍙傛暟鍚庢墠鑳借皟鐢紝鍥犱負榪欎釜鍑芥暟瑕佺敤鍒拌繖鍥涗釜鍊鹼紝璋冪敤jpeg_set_defaults鍑芥暟鍚庯紝jpeglib搴撻噰鐢ㄩ粯璁ょ殑璁劇疆瀵瑰浘鍍忚繘琛屽帇緙╋紝濡傛灉闇瑕佹敼鍙樿緗紝濡傚帇緙╄川閲忥紝璋冪敤榪欎釜鍑芥暟鍚庯紝鍙互璋冪敤鍏跺畠璁劇疆鍑芥暟錛屽jpeg_set_quality鍑芥暟銆傚叾瀹炲浘鍍忓帇緙╂椂鏈夊ソ澶氬弬鏁板彲浠ヨ緗紝浣嗗ぇ閮ㄥ垎鎴戜滑閮界敤涓嶇潃璁劇疆錛屽彧闇璋冪敤jpeg_set_defaults鍑芥暟鍊間負榛樿鍊煎嵆鍙?/p>

銆銆錛斻佷笂闈㈢殑宸ヤ綔鍑嗗瀹屾垚鍚庯紝灝卞彲浠ュ帇緙╀簡錛屽帇緙╄繃紼嬮潪甯哥畝鍗曪紝棣栧厛璋冪敤jpeg_start_compress錛岀劧鍚庡彲浠ュ姣忎竴琛岃繘琛屽帇緙╋紝涔熷彲浠ュ鑻ュ共琛岃繘琛屽帇緙╋紝鐢氳嚦鍙互瀵規暣涓殑鍥懼儚榪涜涓嬈″帇緙╋紝鍘嬬緝瀹屾垚鍚庯紝璁板緱瑕佽皟鐢╦peg_finish_compress鍑芥暟錛屽涓嬶細

  jpeg_start_compress(&jcs, TRUE);

  JSAMPROW row_pointer[1];   // 涓琛屼綅鍥?br>  int row_stride;      // 姣忎竴琛岀殑瀛楄妭鏁?

  row_stride = jcs.image_width;  // 濡傛灉涓嶆槸绱㈠紩鍥?姝ゅ闇瑕佷箻浠?

  // 瀵規瘡涓琛岃繘琛屽帇緙?br>  while (jcs.next_scanline < jcs.image_height) {
       row_pointer[0] = & pDataConv[jcs.next_scanline * row_stride];
       jpeg_write_scanlines(&jcs, row_pointer, 1);
  }

  jpeg_finish_compress(&jcs);

銆銆錛曘佹渶鍚庡氨鏄噴鏀懼帇緙╁伐浣滆繃紼嬩腑鎵鐢寵鐨勮祫婧愪簡錛屼富瑕佸氨鏄痡peg鍘嬬緝瀵硅薄錛岀敱浜庡湪鏈緥涓垜鏄洿鎺ョ敤鐨勫眬閮ㄥ彉閲忥紝鎵浠ュ彧闇璋冪敤jpeg_destroy_compress榪欎釜鍑芥暟鍗沖彲錛屽涓嬶細

 jpeg_destroy_compress(&jcs);

銆銆涓夈佽В鍘嬬緝姝ラ
銆銆瑙e帇緙╂楠や笌鍘嬬緝姝ラ闈炲父鐩鎬技錛屽彧鏄В鍘嬬緝瀵硅薄涓簀peg_decompress_struct綾誨瀷錛屾楠ゅ涓嬶細
銆銆1銆佸0鏄庡茍鍒濆鍖栬В鍘嬬緝瀵硅薄錛屽悓鏃跺埗瀹氶敊璇俊鎭鐞嗗櫒
 struct jpeg_decompress_struct cinfo;
 struct jpeg_error_mgr jerr;

 cinfo.err = jpeg_std_error(&jerr);
 jpeg_create_decompress(&cinfo);
銆銆2銆佹墦寮jpg鍥懼儚鏂囦歡錛屽茍鎸囧畾涓鴻В鍘嬬緝瀵硅薄鐨勬簮鏂囦歡
 FILE *f = fopen(strSourceFileName,"rb");
 if (f==NULL)
 {
  printf("Open file error!\n");
  return;
 }
 //
 jpeg_stdio_src(&cinfo, f);
銆銆3銆佽鍙栧浘鍍忎俊鎭?br> jpeg_read_header(&cinfo, TRUE);
銆銆4銆佹牴鎹浘鍍忎俊鎭敵璇蜂竴涓浘鍍忕紦鍐插尯
 data = new BYTE cinfo.image_width*cinfo.image_height*cinfo.num_components];
銆銆5銆佸紑濮嬭В鍘嬬緝
 jpeg_start_decompress(&cinfo);

 JSAMPROW row_pointer[1];
 while (cinfo.output_scanline < cinfo.output_height)
 {
  row_pointer[0] = &data[(cinfo.output_height - cinfo.output_scanline-1)*cinfo.image_width*cinfo.num_components];
  jpeg_read_scanlines(&cinfo,row_pointer ,
     1);
 }
 jpeg_finish_decompress(&cinfo);
銆銆6銆侀噴鏀捐祫婧?br> jpeg_destroy_decompress(&cinfo);

 fclose(f);

銆銆濂戒簡錛屽埄鐢↖JG JPEG Library榪涜鍥懼儚鍘嬬緝灝變粙緇嶅埌榪欓噷錛屽笇鏈涘澶у鏈夋墍甯姪錛屽疄渚嬩唬鐮佸凡緇忓疄鐜頒簡鍥懼儚鐨勫帇緙╁拰瑙e帇緙╃殑鍏ㄩ儴鍔熻兘

Embedded VC

Jpeg鍥懼儚澶勭悊紼嬪簭鍜屼唬鐮?浣跨敤Indepedent JPEG Group鐨凧pegLib)

鐢↖ndependent JPEG Group鍙戣鐨凧pegLib榪涜Jpeg鍥懼儚鐨勮鍙栦笌淇濆瓨銆?br>        榪欓噷鍙姞浜嗕竴涓畝鍗曠殑澶勭悊紺轟緥鈥斺旇礋鐗囥傚叾浠栫殑澶勭悊鍙互鐢ㄤ笌榪欎釜綾諱技鐨勬柟娉曪紝鏈変簡澶勭悊鐨勭畻娉曞鍍忕礌鏁版嵁榪涜鎿嶄綔銆傛垨鑰呭姞涓婇紶鏍囦簨浠剁殑澶勭悊鏉ュ畬鎴愮粯鐢誨姛鑳界瓑絳夛紝榪欓噷涓昏鏄JPEG鏂囦歡榪涜鎿嶄綔鐨勯儴鍒嗐?br>        娉ㄦ剰錛氱▼搴忎腑鐨凜TScreenBuffer騫舵湭浣跨敤錛屽師鍥犳槸浣跨敤瀹冨姞杞藉悗鏈夋鍐呭瓨娌℃湁閲婃斁錛屽姞涓夿MP鏁版嵁鏈潵灝辨瘮杈冨ソ澶勭悊錛屾墍浠ヨ嚜宸卞啓涓孌碉紝灝咮MP鏁版嵁鍔犱笂澶翠俊鎭氨鍙互CreateDIBSection浜嗐?br>        淇濆瓨鐨勯粯璁よ川閲廞=85錛屽ぇ瀹跺湪浣跨敤鏃跺彲浠ユ寜鐓ц姹傛敼鍙樸?/p>

璇︾粏鐨勪嬌鐢ㄦ柟娉曚互鍙奐pegLib搴?/h3>

MacintoshM 2006-05-14, 11:38
璇︾粏鐨勪嬌鐢ㄦ柟娉曪細

1.緋葷粺闇姹?br>  Microsoft eMbedded Visual C++ 4.0 + Pocket PC 2003 SDK
  Pocket PC鐨凧pegLib搴?鍦ㄦ湰甯栫殑闄勪歡涓?
2.鑳屾櫙
  Jpeg搴撶殑鐢變互涓嬩袱涓枃浠墮厤緗?jconfig.h鍜宩morecfg.h銆備竴鑸嬌鐢ㄦ椂鏄笉闇瑕佹敼鍙榡morecfg.h鐨勶紝浣嗚繖鏍峰彲鑳藉湪Pocket PC涓繍琛屾椂閬囧埌闂錛屾墍浠ヨ繖閲岃繕鏄jmorecfg.h榪涜浜嗕慨鏀廣備笅闈㈠皢璁ㄨ榪欎釜淇敼錛屼互浣胯繖涓簱鍦≒ocket PC涓婃甯鎬嬌鐢ㄣ備笉榪囪繖閲岃兘澶熶笅杞界殑闄勪歡宸茬粡鍋氬ソ浜嗚繖涓慨鏀廣?br>
3.灝咼pegLib寮曞叆Pocket PC
  jmorecfg.h鏂囦歡鍚湁涓嶦mbedded Visual Studio鍐茬獊鐨勫畾涔?闇瑕佸仛浠ヤ笅淇敼:

(1)浠g爜:

#ifndef XMD_H                       
typedef long INT32;
#endif


鏀逛負:

#if !defined(XMD_H) && !defined(_BASETSD_H_)
typedef long INT32;
#endif


(2)浠g爜:

#ifdef NEED_FAR_POINTERS
#define FAR  far
#else
#define FAR
#endif


鐢ㄤ笅闈㈢殑ifdef浠f浛

#ifndef FAR
....
#endif

4.浣跨敤JpegLib鍔犺澆Jpeg鍥劇墖
  鍦ㄥ墠闈㈢殑闄勪歡鐨勭▼搴忎腑錛屽凡緇忔湁榪欎釜紼嬪簭鐨勬鏋訛紝榪欓噷涓嶅啀璧樿堪銆傚彧璁蹭富瑕佺殑閮ㄥ垎銆?br>  (1)鍔犺澆Jpeg鍥劇墖鐨勫嚱鏁幫細
  void CImageView::LoadImage(const CString &strFileName)
{
        FILE * pFile;
        struct jpeg_error_mgr jerr;
        struct jpeg_decompress_struct cinfo;
        int i,start;
        start=0;
       
        if ((pFile = _tfopen(strFileName, _T("rb")) == NULL) {
                CString strError;
                strError.Format(_T("鏃犳硶鎵撳紑鏂囦歡 '%s'", strFileName);
                AfxMessageBox(strError);
        }
       
        cinfo.err = jpeg_std_error(&jerr);
        jpeg_create_decompress(&cinfo);
        jpeg_stdio_src(&cinfo, pFile);
        jpeg_read_header(&cinfo, TRUE);
        jpeg_start_decompress(&cinfo);
        nRowSize = cinfo.output_width * cinfo.output_components;
        Width=cinfo.output_width;
        Height=cinfo.output_height;

        if(bmpLoaded)
        {
                delete bmpBuffer;
        }
        bmpBuffer=new BYTE[(Height+1)*Width*3]; //榪欓噷澶氱敵璇蜂竴琛岋紝鏄洜涓哄湪妯℃嫙鍣ㄦ墽琛屾椂錛屼細鍑虹幇鏃犳硶鍔犺澆鐨勯敊璇紝浣嗗湪鏈哄櫒涓婃甯?br>
        bmpLoaded=TRUE;

        pBuffer = (*cinfo.mem->alloc_sarray)
                ((j_common_ptr) &cinfo, JPOOL_IMAGE, nRowSize, 1);
        while(cinfo.output_scanline < cinfo.output_height)
        {
                jpeg_read_scanlines(&cinfo, pBuffer, 1);

                start=nRowSize*cinfo.output_scanline;
                for(i=0;i<nRowSize;i++)
                {
                        bmpBuffer[start+i]=pBuffer[0]Idea [I];
                }       
        }

        CreateBitmap();
       
        jpeg_finish_decompress(&cinfo);
        jpeg_destroy_decompress(&cinfo);
        fclose(pFile);

}

    (2)灝嗗姞杞藉悗鐨勫儚绱犳暟鎹緩绔嬩竴涓狧BITMAP瀵硅薄鐨勫嚱鏁?br>    娉ㄦ剰榪欓噷娌℃湁浣跨敤CSTScreenBuffer,鍥犱負鍦ㄦ垜瀹為獙鏃訛紝鐢ㄨ繖涓嚱鏁板姞杞藉悗錛屽唴瀛樿祫婧愭病鏈夐噴鏀撅紝榪欐牱姣忓姞杞戒竴騫呭浘鎴栧仛涓嬈″鐞嗭紝灝變細澶氭秷鑰楀嚑鍏嗗唴瀛?Pocket PC鍐呭瓨寰堝揩灝變細琚楀敖銆傛墍浠ヨ繖閲屽皢鍍忕礌鏁版嵁鍔犱笂澶翠俊鎭氨鍙互CreateDIBSection浜嗐?br>    void CImageView::CreateBitmap()
{
        int m_nCorrectedWidth,m_nWidth,m_nHeight;

        m_nCorrectedWidth = ( ( Width + 3 ) / 4 ) * 4;
        m_nWidth = Width;
        m_nHeight = Height;

        DIBINFO  dibInfo;
        BGRColor *m_pBuffer;

        dibInfo.bmiHeader.biBitCount = 24;
        dibInfo.bmiHeader.biClrImportant = 0;
        dibInfo.bmiHeader.biClrUsed = 0;
        dibInfo.bmiHeader.biCompression = 0;
        dibInfo.bmiHeader.biHeight = m_nHeight;
        dibInfo.bmiHeader.biPlanes = 1;
        dibInfo.bmiHeader.biSize = 40;
        dibInfo.bmiHeader.biSizeImage = m_nCorrectedWidth*m_nHeight*3;
        dibInfo.bmiHeader.biWidth = m_nCorrectedWidth;
        dibInfo.bmiHeader.biXPelsPerMeter = 3780;
        dibInfo.bmiHeader.biYPelsPerMeter = 3780;
        dibInfo.bmiColors[0].rgbBlue = 0;
        dibInfo.bmiColors[0].rgbGreen = 0;
        dibInfo.bmiColors[0].rgbRed = 0;
        dibInfo.bmiColors[0].rgbReserved = 0;

        HDC hDC = ::GetDC(NULL);

        if(m_hBitmap)
        {
                :eleteObject(m_hBitmap);
                m_hBitmap=0;
        }
        m_hBitmap = CreateDIBSection(hDC, (const BITMAPINFO*)dibInfo, DIB_RGB_COLORS, (void**)&m_pBuffer, NULL, 0);
       
        ::ReleaseDC(NULL,hDC);

        int nPosition = 0;
        int nDataPosition = 0;

        for (int y=0; y<Height; y++) {
                nPosition = m_nCorrectedWidth*(m_nHeight-y-1);
                nDataPosition = Width*3*y;
                for (int x=0; x<Width; x++) {
                        m_pBuffer[nPosition].m_R = bmpBuffer[nDataPosition++];
                        m_pBuffer[nPosition].m_G = bmpBuffer[nDataPosition++];
                        m_pBuffer[nPosition].m_B = bmpBuffer[nDataPosition++];
                        nPosition++;
                }
        }

}
    (3)鍦ㄧ粯鐢誨嚱鏁頒腑錛岃繖閲屾槸OnDraw()錛屽姞鍏ュ涓嬩唬鐮侊細
    if (m_hBitmap)
        {
            CDC memDc;
                VERIFY(memDc.CreateCompatibleDC(&dc));
            HBITMAP hOldBitmap = (HBITMAP)::SelectObject(memDc.GetSafeHdc(), m_hBitmap);
                VERIFY(dc.BitBlt(-LeftTop.x, -LeftTop.y, Width, Height, &memDc, 0, 0, SRCCOPY));
            ::SelectObject(memDc.GetSafeHdc(), hOldBitmap);
                VERIFY( memDc.DeleteDC() );
        }

5.浣跨敤JpegLib搴撲繚瀛楯peg鍥劇墖
    榪欓噷鏄竴縐嶅疄鐜版柟娉曪細
   void CImageView::SaveImage(const CString &strFileName)
{       
        int nQuality=85; //淇濆瓨璐ㄩ噺Q鍊間負85

        if(!::WriteRGBBytesIntoJpegFile(strFileName,Width,Height,nQuality,bmpBuffer))
        {
                ::AfxMessageBox(GetJpegWriterError());
        }
}

鍏朵粬鐨勬洿璇︾粏鍐呭鐨勭湅渚嬬▼涓殑鍏朵粬娑堟伅澶勭悊鍑芥暟灝卞彲浠ヤ簡銆?/span>

1.闂鐨勭敱鏉?br>    Jpeg鍥劇墖鍦ㄥ浘鍍忓鐞嗛鍩熷凡緇忕敤鐨勭浉褰撳箍娉涗簡銆備絾鍦ㄧ紪紼嬮鍩燂紝灝ゅ叾鏄祵鍏ュ紡緙栫▼棰嗗煙浣跨敤鐨勮繕涓嶆槸寰堝箍銆備富瑕佺殑鍘熷洜鏄疛peg鐨勬暟鎹粨鏋勫拰綆楁硶榪滆緝bmp澶嶆潅錛岄潪鍥懼儚綆楁硶鐨勪笓涓氫漢澹紝閫氬父鏄棤娉曠悊瑙h繖浜涚殑銆傦紙鎴戞湁涓悓浜嬶紝浠栨浘緇忚姳浜嗗崐涓湀錛岀爺絀惰繃Jpeg鐨勫師鐞嗭紝榪樹負姝ゅ湪team鍐呴儴涓懼姙浜嗕竴涓搴э紝璁蹭簡瓚寵凍鏈変竴涓皬鏃訛紝浠や紬浜哄涔嬩話鎱曚竾鍒嗭紝浣嗕粬鍗磋錛屼粎寰楃毊姣涳紝鏈緱瑕佸銆備粠姝ゆ垜瀵笿peg鐨勫師鐞嗚繎鑰岃繙涔嬨傦級
    榪戞潵錛屽洜宸ヤ綔闇瑕侊紝瑕佸湪wince騫沖彴涓嬶紝涓虹▼搴忔坊鍔燡peg鏀寔銆備竴鑸潵璇達紝姝ょ被闂鏈瀹規槗鐨勮В鍐蟲柟妗堟槸浣跨敤OS鎻愪緵鐨勭浉鍏沖簱錛屾瘯绔熺幇鍦ㄤ笉鏀寔Jpeg鐨凮S鍑犱箮娌℃湁銆備絾鍦╳ince涓嬭繖閲屽嚭浜嗕釜闂銆傜洰鍓嶇粷澶у鏁扮殑wince璁懼鏄痺ince 4.X鎴?.X鐨勶紝涓嶈繃紕板閥鍦ㄥ浘鍍忓鐞嗚繖鍧楋紝5.X鍜?.X鐨勬柟娉曟槸涓嶄竴鏍風殑銆?.X鎻愪緵鐨勬柟娉曞湪IMGDECMP.DLL涓紝鑰?.X鎻愪緵鐨勬柟娉曞湪Imaging.DLL涓紝鑰屼笖涓嶆鏄摼鎺ュ簱涓嶅悓錛屽簱鐨勬帴鍙d篃鏄畬鍏ㄤ袱鏍風殑銆傚洜姝わ紝濡傛灉杞歡閲囩敤OS鎻愪緵鐨勭浉鍏沖簱鐨勮瘽錛屽湪榪欓噷灝辮鍑嗗涓ゅ鎺ュ彛錛岄潪甯哥殑楹葷儲銆傚喌涓旓紝鎴戜滑鐨勮蔣浠朵笉浠呰鍦╳ince涓嬮儴緗詫紝灝嗘潵榪樻墦綆楁帹騫垮埌鍏朵粬鐨勫鉤鍙幫紝鍥犳榪欑鏂規鏄劇劧鏄笉澶ソ鐨勩?br>    榪欐椂鎴戞兂鍒頒簡JpegLib銆侸pegLib鏄疘ndependent JPEG Group鈥斺斾竴涓潪Jpeg瀹樻柟緇勭粐鎺ㄥ嚭鐨凧peg搴撱傝繖鏄釜寮婧愬厤璐圭殑搴擄紝鏀寔澶氱騫沖彴鍜岀紪璇戝櫒錛屼綘鍙互鍦?a target=_blank>www.ijg.org涓幏寰楀畠鐨勬渶鏂扮増鏈傚湪PC涓婂畠鐨勬晥鐜囨瘮涓嶄簡intel鐨凧peg搴擄紝鍥犱負鍚庤呰繘琛屼簡姹囩紪浼樺寲銆備絾鍦╳ince涓婂簲璇ュ拰緋葷粺搴撶殑鏁堢巼鐩稿綋銆備簨瀹炰笂濡傛灉鏌ョ湅緋葷粺鐨勭増鏉冧俊鎭殑璇濓紝Microsoft鍦╳ince涓篃浣跨敤浜嗚繖涓簱銆俁ISC鐨勮姱鐗囦篃鍩烘湰娌℃湁姹囩紪浼樺寲鐨勯棶棰樸?br>    緗戜笂鐨勪腑鏂囪祫鏂欎互浠ヤ笅涓ょ瘒鏂囩珷鏈涓鴻灝姐?br>    http://mobile.winfans.net/ccs/forums/516/PrintPost.aspx 錛堟枃鐚瓵錛?br>    http://blog.csdn.net/zhao3728/archive/2007/08/22/1754877.aspx 錛堟枃鐚瓸錛?br>    鎵浠ユ垜鐨勮繖綃囨枃绔犱富瑕佷綔涓鴻ˉ閬椾箣鐢ㄣ?br>
2.緙栬瘧JpegLib搴?br>    鏂囩尞A鍜孊閮芥槸浣跨敤鐜版垚鐨凧pegLib搴擄紝榪欐牱鐨勫簱鍙湪鐗瑰畾鐨勫鉤鍙頒笅鎵嶈兘鐢紝瀹屽叏浣撶幇涓嶅嚭JpegLib鐨勪紭鍔褲傛墍浠ユ帉鎻$紪璇慗pegLib搴撶殑鏂規硶錛屾槸寰堟湁蹇呰鐨勩?br>    JpegLib搴撴簮浠g爜鐨勭粍鎴?br>    1錛塵akefile銆侸pegLib搴撲腑鏈夊緢澶氭枃浠跺悕涓簃akefile鐨勬枃浠躲傚畠鐨勫悗緙鍚嶈〃紺哄畠鎵鐢ㄤ簬鐨勫鉤鍙版垨鐢ㄩ斻傞殢渚挎墦寮涓涓紝灝卞彲浠ョ湅鍒癑pegLib搴撴簮浠g爜鐨勭粍鎴愩?br>    2錛塵akefile涓璍IBSOURCES鍙橀噺鎵浠h〃鐨勬枃浠舵槸JpegLib鐨勬牳蹇冪畻娉曢儴鍒嗐?br>    3錛塵akefile涓璖YSDEPSOURCES鍙橀噺鎵浠h〃鐨勬枃浠舵槸JpegLib涓礋璐e唴瀛樺垎閰嶇殑閮ㄥ垎銆傝繖閮ㄥ垎鏄郴緇熺浉鍏崇殑錛屾墍浠ユ牴鎹渶瑕侀夌敤涓涓氨琛屼簡銆?br>    4錛塵akefile涓瑼PPSOURCES鍙橀噺鎵浠h〃鐨勬枃浠舵槸JpegLib涓彁渚涜濡傚懡浠よ鍘嬬緝Jpeg涔嬬被鐨勫姛鑳界殑閮ㄥ垎錛屽疄闄呬笂灝辨槸涓浜涘皬宸ュ叿銆備笉榪囧湪緙栬瘧JpegLib搴撴椂錛屼笉瑕佸皢涔嬫坊鍔犲埌宸ョ▼涓?br>    5錛塵akefile涓璉NCLUDES鍙橀噺鎵浠h〃鐨勬枃浠舵槸婧愪唬鐮佷腑鐢ㄥ埌鐨勫ご鏂囦歡銆備笉鏄墍鏈夌殑澶存枃浠墮兘琚牳蹇冪畻娉曢儴鍒嗕嬌鐢ㄥ埌錛屽洜姝ゆ湁浜涘ご鏂囦歡鍦ㄧ紪璇慗pegLib搴撴椂錛屾槸涓嶅繀瑕佺殑錛屽綋鐒跺皢涔嬫坊鍔犲埌宸ョ▼涓篃涓嶄細鍑洪敊銆?br>    6錛塵akefile涓璂OCS鍙橀噺鎵浠h〃鐨勬枃浠舵槸涓浜涙枃妗c佹祴璇曠敤渚嬩箣綾葷殑涓滆タ銆傚叾涓渶鏈夌敤鐨勬槸example.c錛屾枃鐚瓵鍜孊鐨勭ず渚嬫渶閲嶈鐨勯儴鍒嗭紝灝辨潵鑷繖閲屻?br>    7錛塲config銆侸pegLib搴撲腑榪樻湁寰堝鍜宮akefile綾諱技鐨刯config錛岃繖鏄拡瀵逛笉鍚屽鉤鍙扮殑綾誨瀷澹版槑銆傚湪浣跨敤鏃訛紝搴旀牴鎹渶瑕侊紝灝嗛傚綋鐨刯config鏂囦歡鐨勫悗緙鍚嶆敼涓篽銆?br>    浠ヤ笂榪欎簺鍐呭鏇磋緇嗙殑璇存槑瑙丣pegLib搴撶殑鏂囨。錛屼互鍙?br>    http://blog.csdn.net/axlrosek/archive/2007/03/29/1545496.aspx
    VC:涓嶅悓鐗堟湰鐨刅C銆丒VC閮藉樊涓嶅錛屽弬鐓ф枃鐚瓵鐨勬楠や慨鏀圭浉鍏蟲枃浠訛紝鐒跺悗鏂板緩涓涓┖宸ョ▼錛岀劧鍚庢墦寮JpegLib涓殑makefile.vc鏂囦歡,灝?錛夊拰3錛夈?錛夈?錛変腑鐨勬枃浠舵坊鍔犲埌宸ョ▼涓傚皢鐢熸垚鏂囦歡鐨勭被鍨嬪畾涓簂ib灝辮浜嗐傛澶栵紝榪橀渶瑕侀拡瀵硅皟鐢ㄧ殑鎯呭喌閫夋嫨閫傚綋鐨勮繍琛屾椂搴擄紝鍚﹀垯鍙兘浼氬嚭LNK2005閿欒銆?br>
3.浣跨敤JpegLib搴?br>    JpegLib搴撶殑浣跨敤鍙傜収鏂囩尞A鍜孊錛屼互鍙奺xample.c灝卞彲浠ヤ簡銆備絾鏂囩尞A鐨勭ず渚嬫槸鏈夐棶棰樼殑銆?br>    bmpBuffer[start+i]=pBuffer[0];
搴旀敼涓?br>    bmpBuffer[start+i]=pBuffer[0][i];
    jpeg_read_scanlines(&cinfo, pBuffer, 1)鎵ц涔嬪悗錛?span style="FONT-WEIGHT: bold">鎵弿綰跨殑鍐呭琚斁鍒皃Buffer[0]錛岃屼笉鏄痯Buffer涓?/span>錛岀敤memcpy灝嗘壂鎻忕嚎鐨勫唴瀹硅漿縐誨埌鍏朵粬鐨勭紦鍐插尯灝辮浜嗭紝鏃犻渶鐢ㄥ驚鐜鍙ャ?br>
4.嫻佽緭鍏ョ殑Jpeg鐨勫鐞?br>    涓婇潰鐨勭ず渚嬪鐞嗙殑閮芥槸浠庢枃浠惰鍏ョ殑Jpeg錛屽湪鐜板疄涓紝榪樺瓨鍦ㄦ祦杈撳叆鐨凧peg銆傚湪寰堝PC娓告垙涓紝紼嬪簭鐨勬暟鎹兘琚泦涓搗鏉ユ斁鍏ヤ竴涓ぇ鏂囦歡涔嬩腑錛屾渶鍏稿瀷鐨勫綋灞炴毚闆殑mpq鏂囦歡銆傚綋榪欎簺鏂囦歡琚鍏ュ唴瀛樻椂錛屽氨褰㈡垚浜嗗瓧鑺傛祦褰㈠紡鐨勬枃浠躲傚皢涔嬪瓨涓轟復鏃舵枃浠訛紝鐒跺悗鍐嶇敤涔嬪墠鐨勬柟娉曪紝鏄劇劧鏄鏂規硶銆傝繖鏃跺彲浠ラ噰鐢╦peg_arr_src鍑芥暟鏉ユ浛鎹peg_stdio_src鍑芥暟銆?br>    榪欎竴鐐硅繕鍙互鍙傝冧互涓嬫枃妗o紝涓嶈繃璇ユ枃閽堝鐨勫ソ鍍忔槸鏃х増鏈紝浣跨敤鏃惰娉ㄦ剰銆?br>    http://blog.china.com/u/060803/5544/200608/15355.html



蹇冪窘 2011-02-22 16:32 鍙戣〃璇勮
]]> 青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              亚洲精品激情| 久久国产主播| 久久黄金**| 在线亚洲欧美| 亚洲免费视频网站| 欧美一区2区三区4区公司二百| 一区二区三区四区五区视频| 一本久久a久久精品亚洲| 亚洲私人影院| 欧美专区一区二区三区| 久久久亚洲精品一区二区三区| 美女国产一区| 亚洲第一精品福利| 欧美福利精品| 亚洲美女视频在线观看| 亚洲综合不卡| 美国十次了思思久久精品导航| 麻豆精品国产91久久久久久| 欧美成人精品在线视频| 欧美成人免费大片| 亚洲人成亚洲人成在线观看| 一区二区激情视频| 久久爱www.| 欧美绝品在线观看成人午夜影视| 国产精品xxxav免费视频| 国产综合久久久久影院| 亚洲日本国产| 久久精品国产96久久久香蕉| 亚洲国产精品黑人久久久 | 亚洲欧洲一区| 亚洲桃花岛网站| 久久国产精品网站| 亚洲精品欧美日韩专区| 久久成人精品一区二区三区| 欧美日韩三级视频| 在线免费高清一区二区三区| 亚洲欧美在线aaa| 亚洲第一综合天堂另类专| 亚洲午夜在线视频| 欧美激情1区2区3区| 国产色视频一区| 99热免费精品在线观看| 开心色5月久久精品| 亚洲一区3d动漫同人无遮挡| 欧美xx视频| 韩日精品中文字幕| 香蕉亚洲视频| 亚洲视频免费| 欧美日韩不卡| 亚洲欧洲免费视频| 蜜臀久久99精品久久久久久9| 亚洲视屏在线播放| 欧美视频观看一区| 一区二区黄色| 亚洲欧洲在线观看| 免费一级欧美片在线播放| 激情综合色丁香一区二区| 久久成人一区| 欧美一级网站| 国产亚洲二区| 久久九九国产精品| 欧美在线视频观看| 依依成人综合视频| 男人插女人欧美| 蜜桃久久av| 一区二区三区视频在线看| 日韩西西人体444www| 欧美日韩视频一区二区| 亚洲一区二区影院| 亚洲视频每日更新| 国产亚洲va综合人人澡精品| 久久久久久久久综合| 久久狠狠亚洲综合| 红桃视频一区| 欧美激情一区二区三级高清视频 | 久久国产手机看片| 久久一区精品| 亚洲激情在线观看视频免费| 欧美福利一区二区| 欧美激情综合五月色丁香小说| 亚洲精品国产精品久久清纯直播| 亚洲国产欧洲综合997久久| 欧美精品xxxxbbbb| 午夜精品av| 久久精品免费| 日韩一级在线观看| 亚洲少妇一区| 精品电影在线观看| 最新69国产成人精品视频免费| 欧美日韩日韩| 久久久久久久国产| 欧美1区2区3区| 亚洲主播在线| 久久久久se| 99re热这里只有精品免费视频| 亚洲特级毛片| 亚洲国产一区二区精品专区| 一区二区冒白浆视频| 国内成+人亚洲+欧美+综合在线| 欧美激情一区二区三区成人| 国产精品色在线| 亚洲国产成人在线| 国产亚洲欧美一区在线观看| 亚洲国产一区二区a毛片| 国产精品永久| 亚洲人线精品午夜| 国模一区二区三区| 亚洲天堂成人在线观看| 亚洲国产一区在线| 午夜精品久久久| 99re8这里有精品热视频免费 | 欧美成人三级在线| 欧美午夜不卡在线观看免费| 免费观看成人网| 国产欧美日韩免费| 99视频精品| 亚洲美女网站| 久久先锋影音av| 久久久国产91| 国产精品亚洲一区| 一本色道精品久久一区二区三区| 怡红院精品视频| 亚洲欧美日韩另类| 中国亚洲黄色| 欧美美女日韩| 亚洲国产毛片完整版| 曰本成人黄色| 久久精品中文字幕一区| 欧美在线电影| 欧美亚州在线观看| 亚洲精品视频二区| 亚洲三级电影全部在线观看高清| 久久久九九九九| 美女成人午夜| 亚洲激情不卡| 欧美成人免费在线视频| 欧美激情第五页| 亚洲日韩欧美视频一区| 蜜乳av另类精品一区二区| 老色鬼久久亚洲一区二区 | 久久不射2019中文字幕| 午夜精品久久久久久久久久久 | 亚洲第一视频| 另类酷文…触手系列精品集v1小说| 久久久国产一区二区| 国产日韩亚洲欧美精品| 欧美一级播放| 久久一本综合频道| 一区二区三区在线观看欧美| 久久久国产成人精品| 欧美高清视频一区二区三区在线观看| 伊人狠狠色丁香综合尤物| 久久影院午夜论| 亚洲人成小说网站色在线| 亚洲一区精品在线| 国产精品日日摸夜夜添夜夜av| 欧美在线精品一区| 欧美r片在线| 一二三区精品福利视频| 国产精品ⅴa在线观看h| 亚洲免费在线电影| 久热精品视频在线| 亚洲美洲欧洲综合国产一区| 国产精品国产精品| 久久aⅴ乱码一区二区三区| 免费观看亚洲视频大全| 亚洲精品自在久久| 国产精品毛片在线看| 久久久久久综合| 99国产精品私拍| 久久婷婷久久| 亚洲午夜久久久久久久久电影院| 国产欧美日韩免费看aⅴ视频| 麻豆av一区二区三区| 亚洲综合日韩| 亚洲电影免费观看高清| 久久www成人_看片免费不卡| 亚洲精品系列| 国产在线精品一区二区中文| 欧美剧在线观看| 久久久爽爽爽美女图片| 一区二区成人精品| 欧美jizz19性欧美| 午夜精品一区二区三区四区| 亚洲人成在线观看网站高清| 国产精品资源| 欧美日韩国产综合视频在线| 久久久精品国产一区二区三区 | 国产精品男女猛烈高潮激情| 久久天天狠狠| 亚洲欧美日韩综合| 亚洲美女网站| 亚洲高清影视| 久久亚洲综合色| 欧美一区二区免费观在线| 亚洲毛片在线观看| **网站欧美大片在线观看| 国产精自产拍久久久久久蜜| 欧美精品在线免费播放| 老司机一区二区|