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

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

?? scklzw.cpp

?? 通用的掃描儀測試接口
?? CPP
字號:
/////////////////////////////////////////////////////////////////////////////
// SckLzw.cpp   LZW For GIF 編碼和解碼實現文件                             //
// CopyRight(C)   1996,2008   TCSY 公司                                    //
// Pentium Working Room   ShanChengKun   2003.08.18   更新                 //
/////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "SckLzw.h"

//===========================================================================
// 通用LZW編碼,編碼階段不需要String Table,只需要m_wTableIndex來獲知寫位數
//===========================================================================
DWORD CSckLzw::LZW_Encode(const BYTE *InBuffer,      // 輸入數據流
						  DWORD  dwLength,           // 原數據大小
						  BYTE *OutBuffer)           // 壓縮后數據
{
	WORD *pHash = new WORD [LZW_MAX_HASH_SIZE];      // Hash索引表
	if(!pHash || !InBuffer || !OutBuffer) {if(pHash) delete[] pHash; return 0;}
	memset(pHash, 0x00, LZW_MAX_HASH_SIZE * sizeof(WORD)); // Hash Table置位0
	memset(OutBuffer, 0x00, dwLength * 2 + 2048);    // 目標全部清零

	m_wTableIndex     = LZW_END + 1;                 // 初始化字符表
	m_byCurrBits      = LZW_MIN_CODE_LEN + 1;        // 當前階段碼長
	m_pCurrIn         = InBuffer;                    // 原始輸入當前
	m_pCurrOut        = OutBuffer;                   // 當前指針輸出

	DWORD dwCurrPixel = 0, dwHashIndex = 0;          // 當前寫入點數
	BYTE  byOutBit    = 0;                           // 輸出緩沖位置
	WORD  wPrefix     = m_pCurrIn[dwCurrPixel++];    // Hash索引前綴
	WORD  wSuffix     = 0;                           // Hash索引后綴

	Encode_WriteIndexOut(LZW_CLEAR, byOutBit);       // 寫Clear首字節
	while(dwCurrPixel < dwLength)
	{
		wSuffix = m_pCurrIn[dwCurrPixel++];          // 提取當前數據
		dwHashIndex = (wPrefix << 8) | wSuffix;      // 構造Hash地址

		// 已在表中,取出索引, Hash Table中存放的是String Table的Index
		if (pHash[dwHashIndex] != 0)                 // 編碼可匹配
		{
			wPrefix = pHash[dwHashIndex];            // 取出索引值
		}

		// 不在表中,把wPrefix + wSuffix添加到String Table中
		else                                         // 沒有則添加
		{
			Encode_WriteIndexOut(wPrefix, byOutBit);
			pHash[dwHashIndex] = m_wTableIndex++;
			wPrefix = wSuffix;

			if ((m_wTableIndex == 0x009) || (m_wTableIndex == 0x011) ||
				(m_wTableIndex == 0x021) || (m_wTableIndex == 0x041) ||
				(m_wTableIndex == 0x081) || (m_wTableIndex == 0x101) ||
				(m_wTableIndex == 0x201) || (m_wTableIndex == 0x401) ||
				(m_wTableIndex == 0x801))
				m_byCurrBits++;

			// String Table(編碼表)已經填滿
			else if (m_wTableIndex == LZW_MAX_TABLE_SIZE)
			{
				Encode_WriteIndexOut (wSuffix,   byOutBit);
				Encode_WriteIndexOut (LZW_CLEAR, byOutBit);

				m_wTableIndex = LZW_END + 1;
				m_byCurrBits  = LZW_MIN_CODE_LEN + 1;
				memset(pHash, 0x00, LZW_MAX_HASH_SIZE * sizeof(WORD));

				wPrefix = m_pCurrIn[dwCurrPixel++];
			}
		}
	}
	Encode_WriteIndexOut (wPrefix, byOutBit);
	Encode_WriteIndexOut (LZW_END, byOutBit);
	delete[] pHash; pHash = NULL;
	return (m_pCurrOut - OutBuffer + 1);             // 釋放并返回
}

//===========================================================================
// 解碼到目標8位色位圖,目標為8位色,自身遞歸調用
//===========================================================================
void CSckLzw::Decode_WriteStringOut(LZW_STRING * pString, WORD wPrefix, DWORD &dwCurrPixel)
{
	if(wPrefix < LZW_CLEAR)
	{
		m_pCurrOut[dwCurrPixel++] = (BYTE)pString[wPrefix].wSuffix;
	}
	else
	{
		Decode_WriteStringOut(pString, pString[wPrefix].wPrefix, dwCurrPixel);
		Decode_WriteStringOut(pString, pString[wPrefix].wSuffix, dwCurrPixel);
	}
}

//===========================================================================
// 通用LZW解碼
//===========================================================================
DWORD CSckLzw::LZW_Decode (const BYTE *InBuffer,     // 輸入的數據流
						   BYTE *OutBuffer)          // 解壓后的數據
{
	LZW_STRING *pString = new LZW_STRING[LZW_MAX_TABLE_SIZE + 32];
	if(!pString || !InBuffer || !OutBuffer) return 0;// 字符串表空間
	memset(pString, 0xFF, (LZW_MAX_TABLE_SIZE + 32) * sizeof(LZW_STRING));
	register WORD i;                                 // 初始化串后綴
	for(i=0; i<LZW_CLEAR; i++) pString[i].wSuffix = i;

	m_wTableIndex     = LZW_END + 1;                 // 初始化字符表
	m_byCurrBits      = LZW_MIN_CODE_LEN + 1;        // 當前階段碼長
	m_pCurrIn         = InBuffer;                    // 原始輸入當前
	m_pCurrOut        = OutBuffer;                   // 當前指針輸出

	DWORD dwCurrPixel = 0;                           // 當前寫入點數
	BYTE  byInBit     = 0;                           // 輸入從0開始
	WORD  wPrefix, wSuffix = LZW_CLEAR, wTemp;       // 表索引前后綴

	while((wPrefix = Decode_GetNextCode(byInBit)) != LZW_END)
	{
		if(wPrefix == LZW_CLEAR)
		{
			memset(pString, 0xFF, (LZW_MAX_TABLE_SIZE + 32) * sizeof(LZW_STRING));
			for(i=0; i<LZW_CLEAR; i++) pString[i].wSuffix = i;
			m_wTableIndex = LZW_END + 1;
			m_byCurrBits  = LZW_MIN_CODE_LEN + 1;
			while((wPrefix = Decode_GetNextCode(byInBit)) == LZW_CLEAR);
		}
		else
		{
			wTemp = (wPrefix < m_wTableIndex) ? wPrefix : wSuffix;
			while(pString[wTemp].wPrefix != 0xFFFF) wTemp = pString[wTemp].wPrefix;
			pString[m_wTableIndex  ].wPrefix = wSuffix;
			pString[m_wTableIndex++].wSuffix = pString[wTemp].wSuffix;

			if ((m_wTableIndex == 0x008) || (m_wTableIndex == 0x010) ||
				(m_wTableIndex == 0x020) || (m_wTableIndex == 0x040) ||
				(m_wTableIndex == 0x080) || (m_wTableIndex == 0x100) ||
				(m_wTableIndex == 0x200) || (m_wTableIndex == 0x400) ||
				(m_wTableIndex == 0x800))
				m_byCurrBits++;
		}
		Decode_WriteStringOut(pString, wPrefix, dwCurrPixel);
		wSuffix = wPrefix;
	}
	delete[] pString; pString = NULL;                // 釋放字符表
	return dwCurrPixel;                              // 返回原大小
}

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩在线播| 成人免费va视频| 午夜精品福利久久久| 亚洲影视在线观看| 亚洲v中文字幕| 中文字幕亚洲视频| 一区二区三区波多野结衣在线观看| 久久久久久免费网| 亚洲日本欧美天堂| 亚洲成人免费视频| 久久精品国产精品亚洲精品| 精品一区二区国语对白| 极品美女销魂一区二区三区免费| 国产一区不卡视频| 粉嫩绯色av一区二区在线观看| 成人av一区二区三区| 欧美日韩亚州综合| 久久免费美女视频| 亚洲高清三级视频| 国产成+人+日韩+欧美+亚洲| 日本久久精品电影| 精品国产乱码久久久久久图片 | 久久精品亚洲精品国产欧美| 中文字幕中文在线不卡住| 日本亚洲视频在线| 91国偷自产一区二区开放时间| 精品欧美黑人一区二区三区| 亚洲理论在线观看| 精品一区二区三区视频在线观看| 性感美女极品91精品| 国产一区二区精品久久| 在线观看免费亚洲| 国产精品国产精品国产专区不片| 日本一道高清亚洲日美韩| 色美美综合视频| 国产欧美日韩亚州综合| 亚洲综合视频网| 成人av在线观| 亚洲另类中文字| 色中色一区二区| 综合久久久久久| 色综合网站在线| 亚洲乱码国产乱码精品精98午夜| 成人免费电影视频| 亚洲欧美偷拍三级| 色88888久久久久久影院按摩| 亚洲天堂福利av| 欧美日韩国产欧美日美国产精品| 一区二区三区日本| 91精品国产综合久久香蕉的特点| 亚洲成人黄色小说| 亚洲精品一区在线观看| 免费欧美在线视频| 精品国产电影一区二区| 国产精品亚洲一区二区三区妖精| 国产亚洲精品资源在线26u| 成人小视频免费在线观看| 亚洲免费观看高清完整版在线| 成人久久久精品乱码一区二区三区 | 久久精品国产在热久久| 国产精品理论在线观看| 欧美日韩在线观看一区二区 | 日韩你懂的在线播放| 国产成人精品三级| 天堂av在线一区| 亚洲三级免费电影| 日韩你懂的在线播放| 精品一区二区精品| 久久久精品国产免费观看同学| av不卡免费在线观看| 免费在线观看一区| 夜夜夜精品看看| 国产精品高潮呻吟久久| 精品裸体舞一区二区三区| 日本精品免费观看高清观看| 久草中文综合在线| 亚洲成av人片在www色猫咪| 国产精品福利电影一区二区三区四区 | 亚洲mv在线观看| 最新国产精品久久精品| 久久伊人蜜桃av一区二区| 欧美精品v日韩精品v韩国精品v| 成人av电影在线观看| 国产精品亚洲成人| 极品美女销魂一区二区三区免费| 五月天亚洲精品| 一区二区三区高清在线| 一区二区三区四区av| 亚洲免费观看高清完整| 国产视频一区在线播放| 久久精品亚洲精品国产欧美| 久久亚洲综合av| 337p亚洲精品色噜噜噜| 欧美在线小视频| 欧美日韩在线播| 91麻豆精品国产综合久久久久久 | 国产免费观看久久| 中文字幕一区二区三| 中文字幕中文字幕在线一区 | 国产精品一区久久久久| 国产成人精品免费一区二区| 丰满少妇在线播放bd日韩电影| 国产很黄免费观看久久| 色久优优欧美色久优优| 欧美一区二区在线免费播放| 久久久亚洲欧洲日产国码αv| 欧美激情一区在线| 日韩黄色片在线观看| 国v精品久久久网| 99精品黄色片免费大全| 丰满放荡岳乱妇91ww| 色婷婷激情久久| www激情久久| 亚欧色一区w666天堂| 国产在线观看一区二区| 在线观看欧美精品| 日本一区二区不卡视频| 免费成人在线视频观看| 99精品欧美一区二区三区小说| 777xxx欧美| 一卡二卡欧美日韩| 不卡一区二区在线| 久久久噜噜噜久噜久久综合| 午夜久久久影院| 色哟哟国产精品| 亚洲女爱视频在线| 成人黄色av网站在线| 精品国产123| 久久国产人妖系列| 2021久久国产精品不只是精品 | 久久av老司机精品网站导航| 欧美色区777第一页| 亚洲精品免费电影| 色综合久久88色综合天天 | 国产精品伊人色| 欧美v国产在线一区二区三区| 麻豆中文一区二区| 日韩亚洲欧美综合| 国内精品免费**视频| 欧美大黄免费观看| 国产精品1024久久| 亚洲欧洲国产日韩| 在线视频一区二区三| 日本一道高清亚洲日美韩| 欧美大片顶级少妇| 国产精品亚洲第一| 国产视频在线观看一区二区三区| 国精产品一区一区三区mba桃花 | 中文字幕第一区二区| 国产**成人网毛片九色| 国产精品视频一二三| www.亚洲人| 国产精品毛片无遮挡高清| 国产99一区视频免费| 亚洲欧美一区二区久久| 久久99国产精品久久99果冻传媒| 国产真实乱对白精彩久久| 日韩精品一区二区在线观看| 国产一区二区在线观看视频| 久久久久久久av麻豆果冻| 国产成人超碰人人澡人人澡| www久久久久| 欧美色窝79yyyycom| 国产高清不卡一区| 一区二区三区高清| 久久嫩草精品久久久精品一| av电影天堂一区二区在线观看| 亚洲精品视频在线观看网站| 欧美一区二区三区播放老司机| 九九**精品视频免费播放| 久久精品一区二区三区不卡牛牛| 成人精品一区二区三区中文字幕| 国产精品理论片在线观看| 色狠狠桃花综合| 国产一区二区福利视频| 亚洲v中文字幕| 国产精品免费久久| 欧美另类videos死尸| 国产成人免费视频网站 | 日韩和欧美一区二区三区| 国产欧美一区视频| 精品理论电影在线| 欧美精品vⅰdeose4hd| 色狠狠av一区二区三区| 91在线观看高清| 国产成人亚洲综合a∨猫咪| 精品一区二区三区视频在线观看 | 精品亚洲国产成人av制服丝袜| 欧美经典三级视频一区二区三区| 精品久久久久香蕉网| 日韩精品一区二区三区中文不卡 | 国产精品久久久久毛片软件| 26uuuu精品一区二区| 精品久久久久久综合日本欧美| 91久久国产最好的精华液| 91黄色免费看| 欧美日韩免费观看一区三区| 欧美亚洲国产一区在线观看网站| 色综合久久久久| 欧美性受极品xxxx喷水|