亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? minijpegenc.h

?? About JPEG, executable on Visual C++
?? H
字號:
/****************************************************************************
*	Author:			Dr. Tony Lin											*
*	Email:			lintong@cis.pku.edu.cn									*
*	Release Date:	Dec. 2002												*
*																			*
*	Name:			mini JPEG class, rewritten from IJG codes				*
*	Source:			IJG v.6a JPEG LIB										*
*	Purpose:		1. Readable, so reusable								*
*					2. Customized Jpeg format, with smallest overhead		*
*					3. Standard c++ types, for easily understood			*
*																			*
*	Acknowlegement:	Thanks for great IJG, and Chris Losinger				*
*																			*
*	Legal Issues:	(almost same as IJG with followings)					*
*																			*
*	1. We don't promise that this software works.							*
*	2. You can use this software for whatever you want.						*
*	You don't have to pay.													*
*	3. You may not pretend that you wrote this software. If you use it		*
*	in a program, you must acknowledge somewhere. That is, please			*
*	metion IJG, and Me, Dr. Tony Lin.										*
*																			*
*****************************************************************************/

class CMiniJpegEncoder
{

private:
	
	////////////////////////////////////////////////////////////////////////////
	//	Following data members should be computed in initialization

	unsigned short m_nQuality, m_nScale;

	//	To speed up, we save RGB=>YCbCr color map tables, 
	//	with result scaled up by 2^16
	int m_RToY[256],	m_GToY[256],	m_BToY[256];
	int m_RToCb[256],	m_GToCb[256],	m_BToCb[256];
	int m_RToCr[256],	m_GToCr[256],	m_BToCr[256];

	//	To speed up, we precompute two DCT quant tables
	unsigned short m_qtblY[64], m_qtblCbCr[64];

	//	Derived data constructed for each Huffman table 	
	typedef struct tag_HUFFMAN_TABLE {
		unsigned int	code[256];	// code for each symbol 
		char			size[256];	// length of code for each symbol 
		//If no code has been allocated for a symbol S, size[S] is 0 
	}HUFFMAN_TABLE;
	HUFFMAN_TABLE m_htblYDC, m_htblYAC, m_htblCbCrDC, m_htblCbCrAC;

	////////////////////////////////////////////////////////////////////////////
	
	////////////////////////////////////////////////////////////////////////////
	//	Following are should be initialized for compressing every image

	unsigned short m_nWidth, m_nHeight;

	//	Three dc records, used for dc differentize for Y/Cb/Cr
	int m_dcY, m_dcCb, m_dcCr;

	//	The size (in bits) and value (in 4 byte buffer) to be written out
	int m_nPutBits, m_nPutVal;

	////////////////////////////////////////////////////////////////////////////

private:
	
	void InitEncoder( void );
	
	void InitColorTable( void );

	void InitQuantTable( void );

	void ScaleQuantTable(
		unsigned short* tblRst,		//result quant table
		unsigned short* tblStd,		//standard quant table
		unsigned short* tblAan		//scale factor for AAN dct
		);

	void InitHuffmanTable( void );

	void ComputeHuffmanTable(
		unsigned char *	pBits, 
		unsigned char * pVal,
		HUFFMAN_TABLE * pTbl	
		);

	bool CompressOneTile(	
		unsigned char * pBgr,	//source data, in BGR format
		unsigned char * pJpg,	//destination, in jpg format
		int& nTileBytes			//return value, the length of compressed data
	);

	void BGRToYCbCr(	
		unsigned char * pBgr,	//tile source data, in BGR format, 768 bytes
		unsigned char * pY,		//out, Illuminance, 256 bytes
		unsigned char * pCb,	//out, Cb, 256 bytes
		unsigned char * pCr		//out, Cr, 256 bytes
		);
	
	void BGRToYCbCrEx(	
		unsigned char * pBgr,	//in, tile data, in BGR format, 768 bytes
		int * pBlock			//out, Y: 256; Cb: 64; Cr: 64 
		);
	
	void ForwardDct( 
		int* data,	//source data, length is 64 
		int* coef	//output dct coefficients
		);
	
	void Quantize( 
		int* coef,	//coef is both in and out
		int iBlock	//block id; Y: 0,1,2,3; Cb: 4; Cr: 5
		);

	bool HuffmanEncode( 
		int* pCoef,				//	DCT coefficients
		unsigned char* pOut,	//	Output byte stream
		int iBlock,				//	0,1,2,3:Y; 4:Cb; 5:Cr;
		int& nBytes				//	Out, Byte number of Output stream
		);

	bool EmitBits(
		unsigned char* pOut,	//Output byte stream
		unsigned int code,		//Huffman code
		int size,				//Size in bits of the Huffman code
		int& nBytes				//Out, bytes length 
		);

	void EmitLeftBits(
		unsigned char* pOut,	//Output byte stream
		int& nBytes				//Out, bytes length 
		);

public:
	
	CMiniJpegEncoder();			//default quality is 50

	CMiniJpegEncoder( int nQuality );

	~CMiniJpegEncoder();

	bool CompressImage(	
		unsigned char *pInBuf,	//source data, bgr format, 3 bytes per pixel
		unsigned char *pOutBuf,	//destination buffer, in jpg format
		int nWidthPix,			//image width in pixels
		int nHeight,			//height
		int& nOutputBytes		//return number of bytes being written
		);
};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕亚洲综合久久菠萝蜜| 91精品午夜视频| 韩国成人福利片在线播放| 一区二区三区四区在线| 中文字幕在线不卡| 国产精品久久久久影院老司 | 本田岬高潮一区二区三区| 男女激情视频一区| 男女激情视频一区| 久国产精品韩国三级视频| 久久精品久久精品| 国产在线观看一区二区| 国产成人在线免费| 成人91在线观看| 91麻豆精品在线观看| 色婷婷国产精品综合在线观看| 色综合天天性综合| 欧美体内she精高潮| 在线播放中文一区| 精品国产一区二区精华| 国产三级三级三级精品8ⅰ区| 国产清纯美女被跳蛋高潮一区二区久久w| 欧美精品一区二区三区蜜桃| 久久久.com| 亚洲综合激情小说| 日韩国产欧美在线观看| 国产成人在线免费| 欧美日韩激情在线| 日韩午夜中文字幕| 国产精品成人一区二区艾草 | 麻豆freexxxx性91精品| 国产美女精品一区二区三区| 国产iv一区二区三区| 91在线视频播放| 欧美一区二区三区性视频| 久久看人人爽人人| 亚洲国产另类精品专区| 国产福利一区在线观看| 欧美日产在线观看| 欧美韩日一区二区三区| 亚洲成精国产精品女| 国产精品中文字幕日韩精品| 一本色道久久综合精品竹菊| 精品欧美久久久| 亚洲精品欧美专区| 韩国三级中文字幕hd久久精品| 99久久婷婷国产综合精品| 91精品国产综合久久婷婷香蕉 | 岛国精品在线观看| 欧美日韩一区二区三区在线| 国产香蕉久久精品综合网| 亚洲午夜电影在线观看| 国产真实乱偷精品视频免| 韩国一区二区三区| 图片区日韩欧美亚洲| 国产精品一二三在| 日韩一区二区在线观看视频播放| 国产精品福利一区| 国产乱码精品一区二区三区忘忧草| 91亚洲永久精品| 精品卡一卡二卡三卡四在线| 婷婷六月综合网| 97久久精品人人澡人人爽| 精品粉嫩aⅴ一区二区三区四区| 午夜免费欧美电影| 色av一区二区| 欧美高清在线精品一区| 国产精品911| 精品国产1区二区| 美女网站色91| 欧美精品亚洲一区二区在线播放| 亚洲欧美日韩精品久久久久| 成人免费视频免费观看| 国产午夜精品理论片a级大结局 | 一区二区三区国产精品| 国产福利电影一区二区三区| 日韩免费成人网| 美腿丝袜亚洲一区| 欧美一区二区三区免费| 水蜜桃久久夜色精品一区的特点| 欧美日韩精品一区二区三区四区| 亚洲精品自拍动漫在线| 一本大道久久a久久精二百| 亚洲另类中文字| 日本韩国视频一区二区| 亚洲福利一区二区三区| 欧美日韩一区二区在线视频| 午夜精品久久久久久久久 | 免费观看日韩av| 91精品综合久久久久久| 日本不卡123| 精品国产91亚洲一区二区三区婷婷| 寂寞少妇一区二区三区| 亚洲一二三级电影| 欧美狂野另类xxxxoooo| 亚洲成人一区在线| 日韩精品一区二区三区视频 | 中文字幕不卡在线观看| 国产精一区二区三区| 中文字幕一区二区三区色视频| 91精品国产黑色紧身裤美女| 老司机精品视频导航| 国产日韩av一区| 在线亚洲人成电影网站色www| 亚洲一卡二卡三卡四卡无卡久久| 欧美日韩成人综合| 国产精品18久久久久久久久| 国产精品免费视频观看| 欧美性受极品xxxx喷水| 日本免费在线视频不卡一不卡二| 久久久久久9999| 在线观看网站黄不卡| 精品一区二区三区在线观看国产| 中文成人综合网| 欧美日韩精品一区二区三区| 精品一区二区三区日韩| 亚洲色图都市小说| 日韩视频免费观看高清完整版| 不卡的av电影在线观看| 丝袜美腿亚洲综合| 国产精品污网站| 4438成人网| 成人激情小说乱人伦| 日韩福利电影在线| 中文字幕一区日韩精品欧美| 欧美一区2区视频在线观看| 成人在线一区二区三区| 婷婷综合在线观看| 国产日产精品一区| 日韩一区二区三区免费观看| 91日韩在线专区| 国产在线不卡视频| 五月婷婷另类国产| 亚洲欧美日韩精品久久久久| 国产欧美综合在线| 精品少妇一区二区三区| 国产无一区二区| 欧美v国产在线一区二区三区| 色av成人天堂桃色av| 成人天堂资源www在线| 美国欧美日韩国产在线播放| 亚洲国产日日夜夜| 自拍偷拍欧美精品| 欧美经典一区二区| 久久美女艺术照精彩视频福利播放| 欧美日韩一区二区在线观看| 在线一区二区三区做爰视频网站| 成人深夜视频在线观看| 风流少妇一区二区| 国产乱码一区二区三区| 韩国视频一区二区| 国产原创一区二区| 韩国三级中文字幕hd久久精品| 蜜臀av性久久久久av蜜臀妖精| 亚洲成人动漫在线观看| 亚洲国产一二三| 三级不卡在线观看| 午夜天堂影视香蕉久久| 亚洲成av人片观看| 午夜不卡在线视频| 日本亚洲三级在线| 日本不卡高清视频| 国产一区二区三区四| 国产精品原创巨作av| 国产精品一区二区91| 国产999精品久久久久久绿帽| 国产盗摄一区二区三区| 成人深夜视频在线观看| 91亚洲国产成人精品一区二三| 99久久综合精品| 在线免费观看日本一区| 欧美日本免费一区二区三区| 91精品婷婷国产综合久久 | 国产在线精品免费| 国产精品一区二区在线播放| 成人免费视频播放| 91免费看片在线观看| 欧美日韩日日夜夜| 日韩欧美成人一区二区| 久久久久国产精品厨房| 自拍偷自拍亚洲精品播放| 午夜电影一区二区| 国产精品自拍毛片| 97久久久精品综合88久久| 欧美精品乱码久久久久久| 精品国产一区a| 亚洲免费看黄网站| 免费观看久久久4p| 成人激情小说网站| 日韩一区二区精品在线观看| 国产欧美综合在线| 日本中文字幕一区二区视频| 国模套图日韩精品一区二区| 91视频.com| 日韩精品一区二区三区视频播放| 国产精品国产三级国产普通话三级| 亚洲一区中文日韩| 国产大陆a不卡| 7777精品伊人久久久大香线蕉完整版 | 国产精品欧美一区喷水|