欢迎来到天天文库
浏览记录
ID:52563558
大小:102.00 KB
页数:18页
时间:2020-03-28
《BMP图片转JPEG图片C程序源代码.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、//ABMPtruecolortoJPEGencoder//Copyright1999CristianCuturicu#include#include#include#include"jtypes.h"#include"jglobals.h"#include"jtables.h"voidwrite_APP0info()//NothingtooverwriteforAPP0info{writeword(APP0info.marker);writeword(APP0i
2、nfo.length);writebyte('J');writebyte('F');writebyte('I');writebyte('F');writebyte(0);writebyte(APP0info.versionhi);writebyte(APP0info.versionlo);writebyte(APP0info.xyunits);writeword(APP0info.xdensity);writeword(APP0info.ydensity);writebyte(APP0info.thumbnwidth);
3、writebyte(APP0info.thumbnheight);}voidwrite_SOF0info()//Weshouldoverwritewidthandheight{writeword(SOF0info.marker);writeword(SOF0info.length);writebyte(SOF0info.precision);writeword(SOF0info.height);writeword(SOF0info.width);writebyte(SOF0info.nrofcomponents);wri
4、tebyte(SOF0info.IdY);writebyte(SOF0info.HVY);writebyte(SOF0info.QTY);writebyte(SOF0info.IdCb);writebyte(SOF0info.HVCb);writebyte(SOF0info.QTCb);writebyte(SOF0info.IdCr);writebyte(SOF0info.HVCr);writebyte(SOF0info.QTCr);}voidwrite_DQTinfo(){BYTEi;writeword(DQTinfo
5、.marker);writeword(DQTinfo.length);writebyte(DQTinfo.QTYinfo);for(i=0;i<64;i++)writebyte(DQTinfo.Ytable[i]);writebyte(DQTinfo.QTCbinfo);for(i=0;i<64;i++)writebyte(DQTinfo.Cbtable[i]);}voidset_quant_table(BYTE*basic_table,BYTEscale_factor,BYTE*newtable)//Setquanti
6、zationtableandzigzagreorderit{BYTEi;longtemp;for(i=0;i<64;i++){temp=((long)basic_table[i]*scale_factor+50L)/100L;//limitthevaluestothevalidrangeif(temp<=0L)temp=1L;if(temp>255L)temp=255L;newtable[zigzag[i]]=(BYTE)temp;}}voidset_DQTinfo(){BYTEscalefactor=50;//scal
7、efactorcontrolsthevisualqualityoftheimage//thesmalleristhebetterimagewe'llget,andthesmaller//compressionwe'llachieveDQTinfo.marker=0xFFDB;DQTinfo.length=132;DQTinfo.QTYinfo=0;DQTinfo.QTCbinfo=1;set_quant_table(std_luminance_qt,scalefactor,DQTinfo.Ytable);set_quan
8、t_table(std_chrominance_qt,scalefactor,DQTinfo.Cbtable);}voidwrite_DHTinfo(){BYTEi;writeword(DHTinfo.marker);writeword(DHTinfo.length);writebyte(DHTinfo.HTYDCi
此文档下载收益归作者所有