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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dib.cpp

?? 嵌入式linux下的rs232驅(qū)動
?? CPP
字號:
// Dib.cpp : implementation file

//



#include "stdafx.h"

#include "Dib.h"

#include "math.h"



#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif



#define pi 3.14159265



CDib::CDib()

{

	m_lWidth = 0;

	m_lHeight = 0;

	m_wBitCount = 0;

	m_nClrUsed = 0;

	m_dwSizeImage = 0;

	m_bIsLoadFile = false;



	m_lpBMPInfo = NULL;

	m_lpLogPal = NULL;

	m_lpImage = NULL;

	m_hdd = 0;

	m_hPal = 0;



}



CDib::~CDib()

{

	Empty();

}



CDib::CDib(LPCTSTR lpszPathName)

{

   	m_lWidth = 0;

	m_lHeight = 0;

	m_wBitCount = 0;

	m_nClrUsed = 0;

	m_dwSizeImage = 0;

	m_bIsLoadFile = false;



	m_lpBMPInfo = NULL;

	m_lpLogPal = NULL;

	m_lpImage = NULL;

	m_hdd = 0;

	m_hPal = 0;



	LoadBMP(lpszPathName);

}



BOOL CDib::LoadBMP(LPCTSTR lpszPathName)

{

   Empty();



   //open a file

   CFile file;

   if(!file.Open(lpszPathName,CFile::modeRead | 

	                                  CFile::shareDenyNone))

   {

	   AfxMessageBox("cann't open the file");

	   return false;

   }



   //read the header of the file

   LPBITMAPFILEHEADER lpBMPFileHeader = (LPBITMAPFILEHEADER)

	           new BYTE[sizeof(BITMAPFILEHEADER)];

   if(!lpBMPFileHeader)

   {

	   AfxMessageBox("not enough memory");

	   file.Close();

	   return false;

   }

   file.Read(lpBMPFileHeader,sizeof(BITMAPFILEHEADER));

   if(lpBMPFileHeader->bfType != 0x4d42)

   {

	   AfxMessageBox("It is not a BMP's file");

	   delete[] lpBMPFileHeader;

	   lpBMPFileHeader = NULL;

	   file.Close();

	   return false;

   }



   //read the structure of the BITMAPINFO 

   m_lpBMPInfo = (LPBITMAPINFO) new BYTE[lpBMPFileHeader->bfOffBits

	                          - sizeof(BITMAPFILEHEADER)];

   if(!m_lpBMPInfo)

   {

	   AfxMessageBox("not enough memory");

	   delete[] lpBMPFileHeader;

	   lpBMPFileHeader = NULL;

	   file.Close();

	   return false;

   }

   file.ReadHuge(m_lpBMPInfo,lpBMPFileHeader->bfOffBits

	                          - sizeof(BITMAPFILEHEADER) );

   m_lWidth = m_lpBMPInfo->bmiHeader.biWidth;

   m_lHeight = m_lpBMPInfo->bmiHeader.biHeight;

   m_wBitCount = m_lpBMPInfo->bmiHeader.biBitCount;

   m_nClrUsed = GetClrUsed();

   BytesPerLine=(m_lWidth * (m_wBitCount / 8) + 3)&~3;//m_lpBMPInfo->bmiHeader.biWidth*m_lpBMPInfo->bmiHeader.biPlanes

							//*m_lpBMPInfo->bmiHeader.biBitCount;

   

   if(m_nClrUsed<=16 && m_nClrUsed !=0)

   {

	   AfxMessageBox("The picture need more biBitCount");

	   delete[] lpBMPFileHeader;

	   lpBMPFileHeader = NULL;

	   delete[] m_lpBMPInfo;

	   m_lpBMPInfo = NULL;

	   file.Close();

	   return false;

   }

   //calculate the bytes of the picture

   m_dwSizeImage = ((m_lWidth * (m_wBitCount / 8) + 3)&~3)*m_lHeight;

   m_lpImage = new BYTE[m_dwSizeImage];

   if(!m_lpImage)

   {

	   AfxMessageBox("not enough memory");

	   delete[] lpBMPFileHeader;

	   lpBMPFileHeader = NULL;

	   delete[] m_lpBMPInfo;

	   m_lpBMPInfo = NULL;

	   file.Close();

	   return false;

   }

   file.ReadHuge(m_lpImage,m_dwSizeImage);



   //set the imformation of the palette;

   m_lpLogPal = (LPLOGPALETTE) new BYTE[sizeof(LPLOGPALETTE)

	                            +m_nClrUsed*sizeof(PALETTEENTRY)];

   m_lpLogPal->palVersion = 0x300;

   m_lpLogPal->palNumEntries = m_nClrUsed;

   for(int i = 0;i<m_nClrUsed;i++)

   {

	   m_lpLogPal->palPalEntry[i].peRed = m_lpBMPInfo->

		                                      bmiColors[i].rgbRed;

	   m_lpLogPal->palPalEntry[i].peBlue = m_lpBMPInfo->

		                                      bmiColors[i].rgbBlue;

	   m_lpLogPal->palPalEntry[i].peGreen = m_lpBMPInfo->

		                                      bmiColors[i].rgbGreen;

	   m_lpLogPal->palPalEntry[i].peFlags = 0;

   }

   m_hPal = ::CreatePalette(m_lpLogPal);

   delete[] lpBMPFileHeader;

   lpBMPFileHeader = NULL;

   file.Close();

   m_bIsLoadFile = true;

	

   return true;



}



void CDib::Empty()

{

	m_lWidth = 0;

	m_lHeight = 0;

	m_wBitCount = 0;

	m_nClrUsed = 0;

	m_dwSizeImage = 0;

	m_bIsLoadFile = false;



	if(m_lpBMPInfo)

		delete[] m_lpBMPInfo;

	m_lpBMPInfo = NULL;



	if(m_lpLogPal)

		delete[] m_lpLogPal;

    m_lpLogPal = NULL;



	if(m_lpImage)

		delete[] m_lpImage;

	m_lpImage = NULL;

//	if(m_lpImage1)

//		delete[] m_lpImage1;

//	m_lpImage1=NULL;



	if(m_hdd)

		::DrawDibClose(m_hdd);

	m_hdd = 0;



	if(m_hPal)

		::DeleteObject(m_hPal);

	m_hPal = 0;

}



DWORD CDib::GetClrUsed()

{

    if(m_lpBMPInfo->bmiHeader.biClrUsed == 0)

	{

		switch(m_wBitCount)

		{

		case 1:

			return 2;

		case 4:

			return 16;

		case 8:

			return 256;

		default:

			return 0;

		}

	}

	return m_lpBMPInfo->bmiHeader.biClrUsed;

}







BOOL CDib::Init(CDC *pDC)

{

	if(!m_bIsLoadFile)

		return false;

	m_hdd = ::DrawDibOpen();

	::DrawDibBegin(m_hdd,pDC->m_hDC,-1,-1,&m_lpBMPInfo->bmiHeader

		,m_lWidth,m_lHeight,DDF_ANIMATE);

	return true;



}



BOOL CDib::draw(CDC *pDC, CPoint originDes)

{

	CRect src;

	src.left = src.top = 0;

	src.right = m_lWidth;

	src.bottom = m_lHeight;

	::DrawDibDraw(m_hdd,pDC->m_hDC,originDes.x ,

				 originDes.y ,m_lWidth,-m_lHeight,&m_lpBMPInfo->bmiHeader,

				 (LPVOID)m_lpImage,src.left,src.top,m_lWidth,src.Height(),

				 DDF_SAME_HDC);

	return true;

}



/*

LONG CDib::GetPixOffset(LONG x, LONG y)

{

	return (m_lHeight-y-1)*BytesPerLine+x*m_wBitCount/8;

}







int CDib::ComputePixel(float x, float y, float &x1, float &y1)

{

	float r, nn;



  if (x==0 && y==0) 

  {

	 x1 = x;

	 y1 = y;

	 return 1;

  }



  nn = (float)sqrt(x*x + y*y);

  r = (float) (fabs(x) > fabs(y)) ? fabs(nn/x): fabs(nn/y);



  x1 = (r*x);

  y1 = (r*y);



  return 1;



}



void CDib::ComputerEllipseEffect(LPBYTE src,LPBYTE des)

{

   // CWaitCursor wait;

  int x, y, x1, y1,tmp1,tmp2;

  float fx, fy, xmid, ymid, ar;





  xmid = (float) (m_lWidth/2.0);

  ymid = (float) (m_lHeight/2.0);

  ar = (float)(m_lHeight)/(float)(m_lWidth);

  for (y=0; y<m_lHeight; y++)

  {

	 for (x=0; x<m_lWidth; x++)

	 {

		ComputePixel(ar*(x-xmid), y-ymid, fx, fy);

		x1 = (int)(xmid+fx/ar);

		y1 = (int)(ymid+fy);

	   if(x1>=0&&y1>=0&&x1<m_lWidth&&y1<m_lHeight)

		{

		tmp2=GetPixOffset(x1,y1);

		tmp1=GetPixOffset(x,y);

		des[tmp1] = src[tmp2];

		des[tmp1+1] = src[tmp2+1];

		des[tmp1+2] = src[tmp2+2];

		}

	 }

  }

  



}

*/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区不卡在线| 一区二区三区四区av| 日韩电影在线一区| 欧美乱妇15p| 午夜电影一区二区三区| 精品黑人一区二区三区久久| 久久精品国产亚洲a| 亚洲精品在线三区| 成人app在线| 1区2区3区欧美| 色诱亚洲精品久久久久久| 久久久777精品电影网影网| 激情伊人五月天久久综合| 成人少妇影院yyyy| 日韩一区日韩二区| 日本久久一区二区| 亚洲午夜在线观看视频在线| 欧美老年两性高潮| 免费成人结看片| 欧美国产精品久久| 91福利国产精品| 美女爽到高潮91| 国产精品每日更新在线播放网址| 色婷婷久久99综合精品jk白丝| 香蕉成人伊视频在线观看| 精品国产一区二区精华| 色综合视频在线观看| 久久精品视频免费| 99精品在线观看视频| 亚洲国产va精品久久久不卡综合| 在线国产电影不卡| 麻豆专区一区二区三区四区五区| 国产亚洲欧美日韩日本| 欧美日韩一区在线观看| 国产成人激情av| 亚洲成av人片在线| 中文在线资源观看网站视频免费不卡| 欧洲中文字幕精品| 国产高清精品网站| 婷婷综合久久一区二区三区| 中文字幕不卡在线观看| 欧美欧美午夜aⅴ在线观看| 国产成人午夜99999| 日本欧美在线观看| 亚洲品质自拍视频| 久久九九全国免费| 91精品综合久久久久久| 日本电影亚洲天堂一区| 国产尤物一区二区| 日韩精品午夜视频| 亚洲女厕所小便bbb| 国产精品欧美精品| 精品国产乱子伦一区| 欧美日韩国产欧美日美国产精品| 国产91精品一区二区麻豆亚洲| 日本va欧美va瓶| 亚洲成在线观看| 成人欧美一区二区三区1314| 久久夜色精品国产欧美乱极品| 欧美日韩日日夜夜| 在线观看日产精品| 91在线观看免费视频| 国产成人av一区| 国产呦精品一区二区三区网站| 午夜激情一区二区三区| 亚洲www啪成人一区二区麻豆| 日韩理论片中文av| 国产精品久久看| 国产精品免费av| 国产午夜三级一区二区三| 精品入口麻豆88视频| 日韩情涩欧美日韩视频| 337p亚洲精品色噜噜| 欧美三级韩国三级日本三斤| 色综合久久综合中文综合网| 91丨porny丨在线| 99免费精品在线观看| av激情综合网| 91麻豆6部合集magnet| 99国产精品视频免费观看| 91老师片黄在线观看| 91小视频免费观看| 色吊一区二区三区| 欧美美女视频在线观看| 欧美日韩激情在线| 欧美精三区欧美精三区| 8x福利精品第一导航| 欧美一区二区三区性视频| 日韩一级成人av| 精品久久久久一区| 久久综合九色综合97婷婷女人| 久久精品人人做人人综合| 国产精品久久久久一区二区三区 | 欧美日韩高清一区二区不卡| 欧美三日本三级三级在线播放| 欧美色手机在线观看| 欧美一区二区三区啪啪| 亚洲精品在线网站| 国产精品二三区| 亚洲一本大道在线| 乱一区二区av| 成人激情电影免费在线观看| av在线一区二区| 91福利在线导航| 日韩欧美不卡在线观看视频| 久久久久久久久久美女| 国产精品妹子av| 亚洲午夜久久久久久久久电影网 | 亚洲色图第一区| 天天色天天爱天天射综合| 精品一区二区三区视频在线观看| 国产suv精品一区二区三区| 色综合色综合色综合 | 国产激情视频一区二区三区欧美| 成人免费视频一区| 欧美日本免费一区二区三区| 精品欧美一区二区久久| 一区视频在线播放| 免费在线成人网| 97成人超碰视| 在线播放一区二区三区| 亚洲国产成人在线| 青青国产91久久久久久| 波多野洁衣一区| 日韩一区二区三区电影在线观看 | 国产精品久久久久久久久免费樱桃| 夜夜亚洲天天久久| 国产精品一区二区免费不卡| 在线观看区一区二| 欧美国产精品一区| 久久精品99国产精品| 91精彩视频在线| 欧美精品一区二区三区蜜桃视频| 一区二区视频在线| 国产精品香蕉一区二区三区| 欧美日韩国产三级| 亚洲欧美一区二区三区极速播放 | 欧美一区二区私人影院日本| 国产精品大尺度| 国产真实乱对白精彩久久| 欧美久久久久久久久久| 亚洲欧美偷拍卡通变态| 国产成a人亚洲精品| 精品国产91乱码一区二区三区| 亚洲一区二区三区四区在线观看 | 久久综合综合久久综合| 欧洲av一区二区嗯嗯嗯啊| 亚洲国产精品传媒在线观看| 久久99精品国产麻豆婷婷洗澡| 欧美在线|欧美| 综合久久久久综合| 国产aⅴ综合色| 久久嫩草精品久久久精品| 久久国产生活片100| 日韩一级二级三级精品视频| 无吗不卡中文字幕| 欧美色图一区二区三区| 亚洲精品中文字幕乱码三区| 成人av在线影院| 欧美激情艳妇裸体舞| 国产综合成人久久大片91| 精品国产一区二区国模嫣然| 久久aⅴ国产欧美74aaa| 精品欧美一区二区三区精品久久| 青青草91视频| 欧美一级日韩免费不卡| 日韩高清在线一区| 欧美一区二区在线免费观看| 亚洲成人福利片| 欧美日韩一本到| 视频一区视频二区在线观看| 欧美日韩精品一区二区在线播放| 洋洋成人永久网站入口| 欧美在线免费观看亚洲| 亚洲自拍偷拍欧美| 欧美性xxxxxx少妇| 亚洲444eee在线观看| 制服丝袜亚洲色图| 麻豆成人av在线| 日韩欧美高清在线| 国产美女av一区二区三区| 精品国产乱码久久久久久久久| 久久99精品久久久久久| 国产片一区二区三区| 不卡一区二区在线| 亚洲免费观看高清完整| 欧美欧美午夜aⅴ在线观看| 免费日本视频一区| www激情久久| 99久久精品国产观看| 亚洲国产欧美日韩另类综合| 欧美丰满嫩嫩电影| 国产一区二区三区香蕉| 国产精品久久久久久久蜜臀| 在线观看日韩电影| 精品制服美女丁香| 国产精品国产三级国产aⅴ原创| 在线国产电影不卡| 激情成人综合网| 亚洲欧美日韩在线不卡|