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

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

?? cdpcmdemoview.cpp

?? 采用DPCM壓縮算法的工程文件
?? CPP
字號:
// CDpcmDemoView.cpp : implementation of the CCDpcmDemoView class
//

#include "stdafx.h"
#include "CDpcmDemo.h"

#include "CDpcmDemoDoc.h"
#include "CDpcmDemoView.h"
#include ".\cdpcmdemoview.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CCDpcmDemoView

IMPLEMENT_DYNCREATE(CCDpcmDemoView, CView)

BEGIN_MESSAGE_MAP(CCDpcmDemoView, CView)
	//{{AFX_MSG_MAP(CCDpcmDemoView)
	ON_COMMAND(ID_ARITHMETIC, OnArithmetic)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
	ON_COMMAND(ID_DARITHMETIC, OnDarithmetic)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCDpcmDemoView construction/destruction

CCDpcmDemoView::CCDpcmDemoView()
{
	// TODO: add construction code here

}

CCDpcmDemoView::~CCDpcmDemoView()
{
}

BOOL CCDpcmDemoView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CCDpcmDemoView drawing

void CCDpcmDemoView::OnDraw(CDC* pDC)
{
	CCDpcmDemoDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	CSize sizeDibDisplay; 
	if(!pDoc->m_pDibInit->IsEmpty()){	
		sizeDibDisplay = pDoc->m_pDibInit->GetDimensions();
		pDoc->m_pDibInit->Draw(pDC,CPoint(0,0),sizeDibDisplay);	
	}	
}

/////////////////////////////////////////////////////////////////////////////
// CCDpcmDemoView printing

BOOL CCDpcmDemoView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CCDpcmDemoView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CCDpcmDemoView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CCDpcmDemoView diagnostics

#ifdef _DEBUG
void CCDpcmDemoView::AssertValid() const
{
	CView::AssertValid();
}

void CCDpcmDemoView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CCDpcmDemoDoc* CCDpcmDemoView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CCDpcmDemoDoc)));
	return (CCDpcmDemoDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CCDpcmDemoView message handlers

void CCDpcmDemoView::OnArithmetic() 
{
	// TODO: Add your command handler code here
	j_compress_struct main_cinfo;
	int p; 
	jpeg_destination_mgr main_dest;
	unsigned char fileheader[4];            /*the compact image data include only width and height*/
	for(int i=0; i<4; i++)
	{
		fileheader[i] = 0x00;
	}

	j_compress_ptr cinfo=&main_cinfo;
	arith_entropy_encoder entropy;
	
	cinfo->dest=&main_dest;
	cinfo->buffer_count=0;
	cinfo->entropy=&entropy;
	main_cinfo.outbuffer=(JOCTET *)m_pDpcm.Alloc_One_Row(cinfo,(size_t) (OUTPUT_BUF_SIZE)); /*sizeof(JOCTET) is 1 */
	main_dest.next_output_byte =cinfo->outbuffer;
	main_dest.free_in_buffer = OUTPUT_BUF_SIZE;
	cinfo->arith_dc_L=1;
	cinfo->first_line=0;
	MEMZERO(cinfo->entropy->dc_stats,160);
	MEMZERO(cinfo->entropy->context_b,1000);
	MEMZERO(cinfo->entropy->val_b,1000);
	MEMZERO(cinfo->pre.B,4*365);
	MEMZERO(cinfo->pre.N,4*365); 
	MEMZERO(cinfo->pre.C,4*365);
	
	
	cinfo->pre.reset=64;
	cinfo->entropy->last_val=0;
	cinfo->entropy->context=0;
	cinfo->arith_dc_U=2;
	cinfo->entropy->c = 0;
	cinfo->entropy->a = 0x10000L;
	cinfo->entropy->sc = 0;
	cinfo->entropy->zc = 0;
	cinfo->entropy->ct = 11;
	cinfo->entropy->buffer = -1;            /* empty */ 
	
	CString strOpenFileType = "位圖文件 (*.jpg)|*.jpg; *.jpg||";
	CFileDialog FileDlg(TRUE, "*.jpg", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, strOpenFileType);
	
	if (FileDlg.DoModal() == IDOK)
	{ 
		CString strFilePath = FileDlg.GetPathName();
		if((cinfo->inputfile=fopen(strFilePath,"rb"))==NULL)
		{
			MessageBox("打開文件錯誤!", "錯誤信息", MB_OK|MB_ICONERROR);
			return;
		}
		
		if((cinfo->outputfile=fopen("d:\\Hello.img","wb+"))==NULL)
		{
			MessageBox("創建文件失敗", "錯誤信息", MB_OK|MB_ICONERROR);
			return;
		}
		
		if (!ReadOK(cinfo->inputfile, fileheader, 4))
		{
			MessageBox("error when read the head of file!", "錯誤信息", MB_OK|MB_ICONERROR);
			return;
		}

		cinfo->image_width = (UINT16)GET_2B(fileheader,0);
		cinfo->image_height = (UINT16)GET_2B(fileheader,2);
		
		cinfo->inbuffer=m_pDpcm.Alloc_Sarray((JDIMENSION) (cinfo->image_width),
		1,cinfo);                
		/*the inbuffer is a row of image elements now for*
		 *one demintion prediction.
		*/
		
		/*create the quality and huff table*/
		/*create_huff (cinfo); It is keeped for later compareration*/ 		
		
		/*write the proper file header,for simplisity we only reserve the SOI and EOI symbole*/
		m_pDpcm.Write_File_Header(cinfo);
		
		/*prepare for the compresion*/
		/*jpeg_make_c_derived_tbl (cinfo, 1,
		*		      &(cinfo->d_dc_huff_tbl_ptr));
		*jpeg_make_c_derived_tbl (cinfo, 0,
		*		      &(cinfo->d_ac_huff_tbl_ptr));
		*/
		/*Enthopy coding and write to the JPEG file*/
		
		for (int i=0;i<(cinfo->image_height);i++)
		{			
			m_pDpcm.Input_Image_Data(cinfo);
			m_pDpcm.Compress_Data(cinfo,i);                   /*include DCT and entropy coding*/
			if (i==0)
				cinfo->first_line=0;
		} 
		
		/*kill all the buffer and output EOI marker*/
		m_pDpcm.Flush_Bits (cinfo);                      /*out put the patial image data*/
		m_pDpcm.Write_File_Trailer (cinfo); 
		JFWRITE(cinfo->outputfile, cinfo->outbuffer, 
			(((size_t) (OUTPUT_BUF_SIZE))-cinfo->dest->free_in_buffer));
		
		m_pDpcm.Free_Mem(cinfo);
		/*fseek(cinfo->inputfile,-2,2);*/
		p=0;
		while(getc(cinfo->inputfile)!=EOF)	
			p++; 
		fclose(cinfo->inputfile);
		fclose(cinfo->outputfile);		
	}
}

void CCDpcmDemoView::OnDarithmetic()
{
	// TODO: 在此添加命令處理程序代碼
	j_compress_struct main_cinfo;
	int i,p; 
	jpeg_destination_mgr main_dest;
	unsigned char fileheader[8];            /*the compact image data include only width and height*/

	j_compress_ptr cinfo=&main_cinfo;
	arith_entropy_encoder entropy;
	jpeg_source_mgr src;

	cinfo->src=&src;
	cinfo->dest=&main_dest;
	cinfo->buffer_count=0;
	cinfo->entropy=&entropy;
	main_cinfo.outbuffer=(JOCTET *)m_pDpcm.Alloc_One_Row(cinfo,(size_t) (OUTPUT_BUF_SIZE)); /*sizeof(JOCTET) is 1 */
	main_dest.next_output_byte =cinfo->outbuffer;
	main_dest.free_in_buffer = OUTPUT_BUF_SIZE;
	cinfo->arith_dc_L=1;
	cinfo->first_line=0;
	cinfo->unread_marker=0;
	MEMZERO(cinfo->entropy->dc_stats,160);
	MEMZERO(cinfo->entropy->context_b,1000);
	MEMZERO(cinfo->entropy->val_b,1000);
	MEMZERO(cinfo->pre.N,365*4);
	MEMZERO(cinfo->pre.B,365*4);
	MEMZERO(cinfo->pre.C,365*4);
	cinfo->pre.reset=64;    

	cinfo->arith_dc_U=2;
	cinfo->entropy->c = 0;
	cinfo->entropy->a = 0x10000;
	cinfo->entropy->sc = 0;
	cinfo->entropy->zc = 0;
	cinfo->entropy->ct = 0;
	cinfo->entropy->last_val=0;
	cinfo->entropy->context=0;
	cinfo->entropy->buffer = -1;            /* empty */ 

	CString strOpenFileType = "DPCM壓縮文件 (*.img)|*.img; *.img||";
	CFileDialog FileDlg(TRUE, "*.img", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, strOpenFileType);

	if (FileDlg.DoModal() == IDOK)
	{ 
		if((cinfo->inputfile=fopen(FileDlg.GetPathName(),"rb"))==NULL)
		{
			MessageBox("打開文件錯誤!", "錯誤信息", MB_OK|MB_ICONERROR);
			return;
		}

		if((cinfo->outputfile=fopen("d:\\Hello.jpg","wb+"))==NULL)
		{
			MessageBox("創建文件失敗", "錯誤信息", MB_OK|MB_ICONERROR);
			return;
		}

		if (! ReadOK(cinfo->inputfile, fileheader, 6))
		{
			MessageBox("error when read the head of file!", "錯誤信息", MB_OK|MB_ICONERROR);
			return;
		}

		cinfo->image_width = (UINT16) GET_2B(fileheader,2);
		cinfo->image_height = (UINT16) GET_2B(fileheader,4);

		cinfo->inbuffer=m_pDpcm.Alloc_Sarray((JDIMENSION) (4096),
			1,cinfo);                /*the inbuffer is a row of image elements now for*
									 *one demintion prediction.
									 */

		src.next_input_byte=cinfo->inbuffer[0];
		src.bytes_in_buffer=0;
		/*create the quality and huff table*/
		/*create_huff (cinfo); It is keeped for later compareration*/

		/*write the proper file header,for simplisity we only reserve the SOI and EOI symbole*/
		m_pDpcm.Write_File_Header(cinfo);

		/*prepare for the compresion*/
		/*jpeg_make_c_derived_tbl (cinfo, 1,
		*		      &(cinfo->d_dc_huff_tbl_ptr));
		*jpeg_make_c_derived_tbl (cinfo, 0,
		*		      &(cinfo->d_ac_huff_tbl_ptr));
		*/
		/*Enthopy coding and write to the JPEG file*/
		m_pDpcm.Initial_Decoder(cinfo);
		for (i=0;i<(cinfo->image_height);i++)
		{
			m_pDpcm.Decode_Row(cinfo,i);
		} 

		/*kill all the buffer and output EOI marker*/
		/*out put the patial image data*/
		m_pDpcm.Write_File_Trailer(cinfo); 
		JFWRITE(cinfo->outputfile, cinfo->outbuffer, 
			(((size_t) (OUTPUT_BUF_SIZE))-cinfo->dest->free_in_buffer));

		m_pDpcm.Free_Mem(cinfo);
		/*fseek(cinfo->inputfile,-2,2);*/
		p=0;
		while(getc(cinfo->inputfile)!=EOF)	
			p++; 
		fclose(cinfo->inputfile);
		fclose(cinfo->outputfile);
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区欧美视频| 一区二区三区中文在线| 欧美乱妇23p| 欧美精品第1页| 欧美一区二区三区四区高清| 欧美日韩不卡一区| 欧美精品一级二级三级| 欧美日韩一本到| 69堂国产成人免费视频| 精品少妇一区二区三区视频免付费| 日韩一区二区麻豆国产| 日韩欧美成人一区二区| 国产日韩成人精品| 最新中文字幕一区二区三区| 国产精品国产三级国产aⅴ原创| 1000部国产精品成人观看| 一区二区三区日韩欧美精品| 亚洲成人精品一区| 老司机一区二区| 成人白浆超碰人人人人| 在线视频欧美区| 亚洲图片激情小说| 亚洲欧美成aⅴ人在线观看| 亚洲激情综合网| 午夜私人影院久久久久| 久久国产精品72免费观看| 国产91精品一区二区麻豆网站| 91免费国产在线| 欧美一区二区三区思思人| 中文字幕欧美日本乱码一线二线| 一区二区三区四区不卡在线| 久久99精品国产91久久来源 | 日本伦理一区二区| 欧美日韩第一区日日骚| 国产欧美一区二区精品久导航| 亚洲精品国产无天堂网2021| 日本欧美韩国一区三区| 成人av电影免费在线播放| 7878成人国产在线观看| 国产精品理论在线观看| 免费观看91视频大全| 99在线视频精品| 精品福利一区二区三区| 伊人开心综合网| 成人在线视频一区| 欧美久久久久久久久中文字幕| 国产精品久久久久四虎| 日本不卡一区二区三区| 欧美调教femdomvk| 亚洲国产精品激情在线观看| 久久国产剧场电影| 欧美精品v国产精品v日韩精品 | 亚洲一区二区av电影| 国产精品1区二区.| 日韩一区国产二区欧美三区| 一区二区在线观看视频| 成人毛片老司机大片| 欧美精品一区二区三区高清aⅴ| 亚洲第一主播视频| 欧美午夜寂寞影院| 亚洲乱码国产乱码精品精可以看| 国产福利一区二区三区视频| 精品国产一区二区亚洲人成毛片 | 欧美日韩免费高清一区色橹橹| **网站欧美大片在线观看| 成人免费视频视频在线观看免费| 欧美大片在线观看| 欧美aⅴ一区二区三区视频| 欧美卡1卡2卡| 日韩不卡一二三区| 欧美一区二区三区四区五区 | 久久影视一区二区| 久久不见久久见免费视频1| 欧美一区二区人人喊爽| 日本成人在线电影网| 欧美大肚乱孕交hd孕妇| 免费成人在线网站| 日韩欧美一二三区| 另类调教123区| 欧美精品一区二区三区在线 | 99re在线视频这里只有精品| 国产精品不卡视频| 欧美亚男人的天堂| 五月天中文字幕一区二区| 制服丝袜亚洲色图| 麻豆精品国产91久久久久久| xf在线a精品一区二区视频网站| 精品一区二区三区视频在线观看| 国产亚洲成av人在线观看导航 | 亚洲高清视频在线| 日韩三级精品电影久久久| 精品在线一区二区| 中文字幕精品三区| 99v久久综合狠狠综合久久| 亚洲曰韩产成在线| 日韩写真欧美这视频| 国产麻豆精品久久一二三| 中文天堂在线一区| 欧美日韩精品一区二区在线播放| 无码av中文一区二区三区桃花岛| 久久亚洲一级片| 在线看不卡av| 免费观看在线综合| 亚洲欧美自拍偷拍色图| 4438x亚洲最大成人网| 国产黄色精品视频| 亚洲综合网站在线观看| 精品嫩草影院久久| 色偷偷久久一区二区三区| 日韩电影在线看| ...av二区三区久久精品| 欧美一区二区三区在线观看视频| 成人精品一区二区三区四区| 午夜精品久久久久久久久久| 国产免费观看久久| 91精品国产高清一区二区三区蜜臀 | wwwwxxxxx欧美| 色婷婷亚洲一区二区三区| 韩国午夜理伦三级不卡影院| 日韩理论电影院| 久久精品亚洲精品国产欧美| 欧美二区三区的天堂| 91麻豆国产在线观看| 国内精品国产成人| 亚洲一区二区成人在线观看| 国产精品激情偷乱一区二区∴| 91精品在线一区二区| 在线观看国产精品网站| 成人av在线影院| 国产在线播放一区三区四| 亚洲成人一区在线| 亚洲久草在线视频| 中文乱码免费一区二区| 久久综合久久综合亚洲| 91精品国产综合久久蜜臀| 在线观看视频一区二区欧美日韩| 福利视频网站一区二区三区| 激情综合五月天| 蜜臀久久99精品久久久久宅男| 亚洲国产一区二区a毛片| 18成人在线视频| 中文字幕人成不卡一区| 欧美激情综合五月色丁香小说| 欧美大片国产精品| 4438成人网| 欧美一级一区二区| 日韩区在线观看| 欧美一级精品大片| 日韩欧美在线观看一区二区三区| 欧美美女激情18p| 911国产精品| 日韩欧美激情四射| 精品日韩一区二区| 久久夜色精品国产噜噜av| 精品国产乱码久久久久久老虎| 日韩欧美国产综合在线一区二区三区| 欧美精品xxxxbbbb| 日韩欧美成人一区| 久久精品夜色噜噜亚洲aⅴ| 国产亚洲欧美中文| 中文字幕欧美日韩一区| 亚洲色图19p| 亚洲国产va精品久久久不卡综合| 香蕉影视欧美成人| 久久疯狂做爰流白浆xx| 国产激情偷乱视频一区二区三区| 成人国产精品免费网站| 色综合久久综合网97色综合| 在线视频你懂得一区二区三区| 在线综合+亚洲+欧美中文字幕| 日韩精品专区在线影院观看| 久久久久久毛片| 亚洲视频你懂的| 青草av.久久免费一区| 国产成人av影院| 在线观看av不卡| 日韩片之四级片| 综合色天天鬼久久鬼色| 亚洲成人三级小说| 国产精品亚洲人在线观看| 日本韩国一区二区三区视频| 7777精品伊人久久久大香线蕉超级流畅 | 国产91高潮流白浆在线麻豆 | 国产一区二区在线电影| 91在线视频观看| 日韩三级在线观看| 亚洲色欲色欲www| 蜜桃视频在线一区| 色噜噜狠狠色综合中国| 精品区一区二区| 中文字幕一区av| 激情综合网天天干| 欧美午夜精品一区二区蜜桃 | 91免费观看视频在线| 91精品国产综合久久精品app | 亚洲乱码中文字幕综合| 国产综合久久久久久鬼色| 在线观看亚洲精品| 欧美国产精品中文字幕| 免费精品99久久国产综合精品|