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

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

?? myimage.cpp

?? 電子監(jiān)控的網(wǎng)絡(luò)編程實(shí)例
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
	
//	GlobalReAlloc(hDib,dwDIBSize,GMEM_MODIFY);
	LPVOID pS=GlobalLock(tmpHDIB);
	if(!pS)
	{
		GlobalFree(tmpHDIB);
		return;	
	}
	LPVOID pD=GlobalLock(hImage);
	if(!pS){
		GlobalUnlock(tmpHDIB);
		GlobalFree(tmpHDIB);
		return;
	}
	if (start<widths )
		widths=start;
	int heights=sz.cy;
	//	if(text2.GetLength()>1)
	//		heights=2*sz.cy;
	//	for(int i=99;i>99-heights;i--)
	//		memcpy(LPBYTE(pD)+40+(h-1-(99-i))*start/*+start-300*3*/,LPBYTE(pS)+40+i*720*3/*+(720-300)*3*/,widths);
	for(int i=sz.cy-1;i>0;i--)
		memcpy(LPBYTE(pD)+54+(h-1-i)*start/*+start-300*3*/,LPBYTE(pS)+40+(99-i)*dibWidth*3/*+(720-300)*3*/,widths);
	if(widths2>0)
	{
		if(start<widths2)
			widths2=start;
		for(int i=sz.cy*2-1;i>sz.cy;i--)
			memcpy(LPBYTE(pD)+54+(h-1-i)*start/*+start-300*3*/,LPBYTE(pS)+40+(99-i)*dibWidth*3/*+(720-300)*3*/,widths2);
	}
	
	if(hBitmap)
	{
		//繪制號牌圖片
		HDIB tmpHDIB2 = DDBtoDIB(hBitmap, NULL);
		if(!tmpHDIB2)
		{
			GlobalUnlock(tmpHDIB);
			GlobalUnlock(hImage);
			GlobalFree(tmpHDIB);
			return;
		}
		PBYTE ph = NULL;
		ph = (PBYTE)::GlobalLock(tmpHDIB2);
		if(!ph)
		{
			GlobalUnlock(tmpHDIB);
			GlobalUnlock(hImage);
			GlobalFree(tmpHDIB);
			GlobalFree(tmpHDIB2);
			return;
		}
		int cx=0,cy=0;
		LPBITMAPINFOHEADER lp = (LPBITMAPINFOHEADER)ph;
		cx = lp->biWidth;
		cy = lp->biHeight;
		
		if (cx + xstart>dibWidth)
			cx = dibWidth - xstart;
		if (cy + ystart>dibHeight)
			cy = dibHeight - ystart;
		for(i=0;i<cy;i++)	
			memcpy(LPBYTE(pD)+54+(dibHeight-ystart-cy+i)*start+xstart*3, LPBYTE(ph)+40+ (lp->biHeight-cy+i)*lp->biWidth*3 , cx * 3);  
			//	memcpy(pD,pS,dwDIBSize);
		GlobalUnlock(tmpHDIB2);
		GlobalFree(tmpHDIB2);
	}	
	GlobalUnlock(tmpHDIB);
	GlobalUnlock(hImage);
	GlobalFree(tmpHDIB);
}

IMAGE_ERROR CMyImage::SaveImage(CString FileName, int nQulity)
{
	ASSERT(!FileName.IsEmpty());
	if(FileName.IsEmpty())
		return IMAGE_ERR_NOFILENAME;
	if(!hImage)
		return IMAGE_NULL;
	IMAGE_ERROR err = IMAGE_OK;
	
	CFile file;
	CFileException fe;	
	
	CString m_strName=FileName;
	CString m_strFileExt=FileName.Right(3);
	m_strFileExt.MakeUpper();
	if(m_strFileExt=="BMP")
	{
		//	TRY
		//	{
		//	   file.Open(csFileName, CFile::modeCreate | CFile::modeWrite,NULL))
		//	}
		//	CATCH( CFileException, e )
		//	{
		//		if( e->m_cause == CFileException::fileNotFound )
		//			printf( "ERROR: File not found\n");
		//	}
		//	END_CATCH
		if (!file.Open(FileName, CFile::modeCreate | CFile::modeWrite |CFile::shareDenyNone, &fe))
		{
			//	fe.ReportError();
			
			return IMAGE_ERR_WRITEFILE;
		}
		
		TRY
		{
			IMAGE_ERROR err = SaveImage(file);
			if(err != IMAGE_OK)
				return err;
		}
		CATCH (CFileException, eLoad)
		{
			file.Abort(); // will not throw an exception
			return IMAGE_ERR_WRITEFILE;
		}
		END_CATCH
	}
	else if(m_strFileExt=="JPG")
	{
		if (nQulity<10 || nQulity>100)
			nQulity = 40;
		err = SaveJPG(FileName, nQulity);
		if(err!=IMAGE_OK)
			return err;
	}
	else
	{
		return IMAGE_ERR_NOTSUPPORTFILE;
	}
		
	return IMAGE_OK;
}
//保存Image到文件CFile
IMAGE_ERROR CMyImage::SaveImage(CFile &file)
{
	if (!hImage)
		return IMAGE_NULL;
	// Write the file header
	DWORD dwSize = GlobalSize(hImage);
	PBYTE ps = (PBYTE) GlobalLock(hImage);
	if ( !ps )
		return IMAGE_ERR_LOCK;
	TRY
	{	
		file.WriteHuge(ps, dwSize);
	}

	CATCH (CFileException, e)
	{
		BOOL b = ::GlobalUnlock(hImage);
		/*win98下禁用
		if(!p)
		return IMAGE_ERR_UNLOCK;
		*/
		return IMAGE_ERR_WRITEFILE;
		THROW_LAST();
	}
	END_CATCH
		
	BOOL b = ::GlobalUnlock(hImage);
		/*win98下禁用
		if(!p)
		return IMAGE_ERR_UNLOCK;
		*/
	return IMAGE_OK;	
}

IMAGE_ERROR CMyImage::SaveJPG(CString FileName, int nQulity)
{
	if(FileName.IsEmpty())
		return IMAGE_ERR_NOFILENAME;
	if (::SaveJPG(FileName.GetBuffer(0), hImage ,nQulity))
		return IMAGE_OK;
	else
		return IMAGE_ERR_IMAGELOAD_SAVE;
}

HDIB CMyImage::GetDIB()
{
	if(!hImage)
		return NULL;
	HDIB hDib = NULL;
	DWORD dwSize = GlobalSize(hImage);
	hDib = (HDIB)::GlobalAlloc(GHND/*GMEM_FIXED*/, dwSize - 14);
	if(!hDib)
		return NULL;
	PBYTE ps=NULL,pd=NULL;
	ps = (PBYTE)GlobalLock(hImage);
	if(!ps)
	{
		GlobalFree(hDib);
		hDib=NULL;
		return NULL;
	}
	pd = (PBYTE)GlobalLock(hDib);
	if(!pd)
	{
		BOOL b = GlobalUnlock(hImage);
				/*win98下禁用
		if(!p)
		return IMAGE_ERR_UNLOCK;
		*/
		GlobalFree(hDib);
		hDib=NULL;
		return NULL;
	}
	memcpy(pd, ps+14, dwSize -14);
	BOOL b = GlobalUnlock(hImage);
				/*win98下禁用
		if(!p)
		return IMAGE_ERR_UNLOCK;
		*/
	b = GlobalUnlock(hDib);
				/*win98下禁用
		if(!b)
		return IMAGE_ERR_UNLOCK;
		*/
	return hDib;
}

HBITMAP CMyImage::GetDDB()
{
	HDIB hDib = NULL;
	hDib = GetDIB();
	if(!hDib)
		return NULL;
	HBITMAP hBitmap = NULL;
	hBitmap = DIBtoDDB(hDib);
	GlobalFree(hDib);
	return hBitmap;		
}

IMAGE_ERROR CMyImage::GetBuf(PBYTE pImage, DWORD &dwSize, int iMode)
{
	if(!hImage)
		return IMAGE_NULL;
	DWORD dwGlobal = 0;
	PBYTE lp = NULL;
	BOOL b = FALSE;
	switch(iMode) {
	case 0:
		dwGlobal = GlobalSize(hImage);
		if(dwSize != dwGlobal)
			return IMAGE_ERR_SIZE;
		lp = (PBYTE)GlobalLock(hImage);
		if(!lp)
			return IMAGE_ERR_LOCK;
		memcpy(pImage, lp, dwSize);
		b = GlobalUnlock( hImage );
				/*win98下禁用
		if(!b)
		return IMAGE_ERR_UNLOCK;
		*/
		break;
	case 1:
		dwGlobal = GlobalSize(hImage);
		if(dwSize + 14 != dwGlobal)
			return IMAGE_ERR_SIZE;
		lp = (PBYTE)GlobalLock(hImage);
		if(!lp)
			return IMAGE_ERR_LOCK;
		memcpy(pImage, lp+14, dwSize);
		b = GlobalUnlock( hImage );
				/*win98下禁用
		if(!b)
		return IMAGE_ERR_UNLOCK;
		*/
		break;
	default:
		dwGlobal = GlobalSize(hImage);
		if(dwSize + 54 != dwGlobal)
			return IMAGE_ERR_SIZE;
		lp = (PBYTE)GlobalLock(hImage);
		if(!lp)
			return IMAGE_ERR_LOCK;
		memcpy(pImage, lp + 54, dwSize);
		b = GlobalUnlock( hImage );
		/*win98下禁用
		if(!b)
		return IMAGE_ERR_UNLOCK;
		*/
	}
	return IMAGE_OK;
}

void CMyImage::DdbAdd(HBITMAP &hDib, CString text, CString text2, LPLOGFONT plf, HBITMAP hBitmap, int xstart, int ystart)
{
	if(!hDib)
		return;

	LOGFONT lf;
	if(!plf)
	{
		::ZeroMemory(&lf,sizeof(lf));
		lf.lfHeight=160;
		lf.lfWeight=FW_BOLD;
		//	lf.lfItalic=TRUE;
		::lstrcpy(lf.lfFaceName,_T("宋體"));
	}
	else
	{
		memcpy(&lf, plf, sizeof(LOGFONT));
	}

	
	HDC dcMemory;
	HDC pDC=::GetDC(NULL);
	dcMemory=CreateCompatibleDC(pDC);
	CDC* pMemory=new CDC();
	pMemory->Attach(dcMemory);
//	CBitmap bitmap;
//	bitmap.CreateCompatibleBitmap(pMemory,dibWidth,100);
	CBitmap* pOldBitmap =(CBitmap*)::SelectObject(dcMemory,hDib);
	//	::SetBkMode(dcMemory,TRANSPARENT);
	::SetBkColor(dcMemory,RGB(0,0,0));
	::SetTextColor(dcMemory,RGB(255,255,255));
	
	CFont font;
	font.CreatePointFontIndirect(&lf);
	::SelectObject(dcMemory,font.GetSafeHandle());
	CSize sz=pMemory->GetTextExtent(text);
	CSize sz2=pMemory->GetTextExtent(text2);
	DWORD widths=sz.cx*3;
	DWORD widths2=0;
	::TextOut(dcMemory,0,0,text,text.GetLength());
	if(text2.GetLength()>1)
	{
		::TextOut(dcMemory,0,sz.cy,text2,text2.GetLength());
		widths2=sz2.cx*3;
	}
	if(hBitmap)
	{
		BITMAP bitmap;
		::GetObject(hBitmap, sizeof(BITMAP), &bitmap);
		
		HDC dcMemory2 = NULL;
		dcMemory2 = CreateCompatibleDC(pDC);
		::SelectObject(dcMemory2, hBitmap);
		::StretchBlt(dcMemory, xstart, ystart, bitmap.bmWidth, bitmap.bmHeight, dcMemory2, 0, 0, bitmap.bmWidth, bitmap.bmHeight ,SRCCOPY);
		DeleteDC(dcMemory2);	
	}
	
	pMemory->Detach();
	//	ReleaseDC(NULL,dcMemory);
	DeleteDC(dcMemory);
	ReleaseDC(NULL,pDC);
	DeleteDC(pMemory->GetSafeHdc());
	//	ReleaseDC(NULL,pMemory->GetSafeHdc());
	
	delete pMemory;
}

BOOL CMyImage::SaveDIB(HDIB hDib, CString FileName, int nQulity)
{
	ASSERT(!FileName.IsEmpty());
	if(FileName.IsEmpty())
		return FALSE;
	if(!hDib)
		return FALSE;
	
	CFile file;
	CFileException fe;	
	
	CString m_strName=FileName;
	CString m_strFileExt=FileName.Right(3);
	m_strFileExt.MakeUpper();
	if(m_strFileExt=="BMP")
	{
		//	TRY
		//	{
		//	   file.Open(csFileName, CFile::modeCreate | CFile::modeWrite,NULL))
		//	}
		//	CATCH( CFileException, e )
		//	{
		//		if( e->m_cause == CFileException::fileNotFound )
		//			printf( "ERROR: File not found\n");
		//	}
		//	END_CATCH
		if (!file.Open(FileName, CFile::modeCreate | CFile::modeWrite |CFile::shareDenyNone, &fe))
		{
			//	fe.ReportError();
			
			return FALSE;
		}
		
		TRY
		{
			if(!SaveDIB(hDib, file))
				return FALSE;
		}
		CATCH (CFileException, eLoad)
		{
			file.Abort(); // will not throw an exception
			return FALSE;
		}
		END_CATCH
	}
	else if(m_strFileExt=="JPG")
	{
		if (nQulity<10 || nQulity>100)
			nQulity = 40;
		if(!SaveJPG(hDib, FileName, nQulity))
			return FALSE;
	}
	else
	{
		return FALSE;
	}
	
	return TRUE;
}
//保存DIB 為BMP文件
BOOL CMyImage::SaveDIB(HDIB hDib, CFile &file)
{
	if (!hDib)
		return FALSE;
	BITMAPFILEHEADER bfh;
	memset(&bfh, 0, sizeof(bfh));
	bfh.bfType = 'MB';
	bfh.bfOffBits = 54;
	bfh.bfSize = GlobalSize(hDib)+14;
	// Write the file header
	DWORD dwSize = bfh.bfSize - 14;
	PBYTE ps = (PBYTE) GlobalLock(hDib);
	if ( !ps )
		return FALSE;
	TRY
	{	file.Write(&bfh, 14);
		file.WriteHuge(ps, dwSize);
	}

	CATCH (CFileException, e)
	{
		BOOL b = ::GlobalUnlock(hDib);
		/*win98下禁用
		if(!p)
		return IMAGE_ERR_UNLOCK;
		*/
		return FALSE;
		THROW_LAST();
	}
	END_CATCH
		
	BOOL b = ::GlobalUnlock(hDib);
		/*win98下禁用
		if(!b)
		return FALSE;
		*/
	return TRUE;	
}
//保存 DIB為JPG文件
BOOL CMyImage::SaveJPG(HDIB hDib, CString FileName, int nQulity)
{
	if(FileName.IsEmpty())
		return FALSE;
	if(!hDib)
		return FALSE;
	HGLOBAL h = NULL;
	DWORD dwSize = GlobalSize(hDib);
	h = ::GlobalAlloc(GHND/*GMEM_FIXED*/, dwSize + 14);
	if(!h)
		return FALSE;
	PBYTE ps=NULL,pd=NULL;
	pd=(PBYTE)GlobalLock(h);
	if(!pd)
	{
		GlobalFree(h);
		return FALSE;
	}
	ps=(PBYTE)GlobalLock(hDib);
	if(!ps)
	{
		GlobalUnlock(h);
		GlobalFree(h);
		return FALSE;
	}
	BITMAPFILEHEADER bfh;
	memset(&bfh, 0, sizeof(bfh));
	bfh.bfType = 'MB';
	bfh.bfOffBits = 54;
	bfh.bfSize = dwSize + 14;
	memcpy(pd, &bfh, sizeof(bfh));
	memcpy(pd + 14, ps, dwSize);
	GlobalUnlock(h);
	if(!(::SaveJPG(FileName.GetBuffer(0), h, nQulity)))
	{
		GlobalFree(h);
		return FALSE;
	}
	GlobalFree(h);
	return TRUE;
}

BOOL CMyImage::SaveDDB(HBITMAP hBitmap, CString FileName, int nQulity)
{
	ASSERT(!FileName.IsEmpty());
	if(FileName.IsEmpty())
		return FALSE;
	if(!hBitmap)
		return FALSE;
	HDIB hDib = NULL;
	hDib = DDBtoDIB(hBitmap);
	if(!hDib)
		return FALSE;
	if(!SaveDIB(hDib, FileName, nQulity))
	{
		GlobalFree(hDib);
		return FALSE;
	}
	GlobalFree(hDib);
	return TRUE;

}
//繪制Image對象
IMAGE_ERROR CMyImage::DrawImage(HDC hDC, CRect sRect, CRect dRect)
{
	LPBYTE	lp=NULL;
	LPSTR    lpDIBHdr=NULL;            // Pointer to BITMAPINFOHEADER
	LPSTR    lpDIBBits=NULL;           // Pointer to DIB bits
	BOOL     bSuccess=FALSE;      // Success/fail flag
	HPALETTE pOldPal=NULL;        // Previous palette
	
	// Check for valid DIB handle 
	if (!hImage)
		return IMAGE_NULL;
	// Lock down the DIB, and get a pointer to the beginning of the bit
	//   buffer
	lp  = (LPBYTE)::GlobalLock(hImage);
	if(!lp)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区午夜精品| 亚洲图片你懂的| 日韩视频一区二区| 91精品国产入口在线| 欧美日韩在线观看一区二区| 欧美在线不卡视频| 欧美性色欧美a在线播放| 在线亚洲+欧美+日本专区| 欧洲国内综合视频| 欧美手机在线视频| 91麻豆精品国产91久久久久| 91麻豆精品国产91久久久久| 日韩免费高清视频| 久久午夜免费电影| 中文字幕二三区不卡| 国产清纯白嫩初高生在线观看91 | 91日韩在线专区| 成人av在线资源| 91麻豆免费观看| 欧美亚洲国产一区二区三区va| 在线国产亚洲欧美| 欧美日韩一区久久| 精品美女一区二区三区| 国产精品青草综合久久久久99| 国产精品国产三级国产三级人妇| 国产精品电影一区二区三区| 一区二区三区蜜桃网| 亚洲成人自拍一区| 国产一区二区三区综合| 成人毛片视频在线观看| 色8久久精品久久久久久蜜| 欧美伊人久久大香线蕉综合69 | 一区二区三区不卡在线观看| 亚洲一区二区五区| 欧美aaaaa成人免费观看视频| 另类人妖一区二区av| 国产91精品在线观看| 一本色道久久综合亚洲91| 欧美日韩精品一区二区在线播放| 91精品中文字幕一区二区三区| 精品欧美乱码久久久久久1区2区| 国产精品视频在线看| 亚洲一区在线视频观看| 美女免费视频一区| 不卡一区二区三区四区| 欧美日本高清视频在线观看| 久久人人97超碰com| 亚洲一区在线观看视频| 国产综合久久久久久鬼色| 91久久精品网| 日韩一级完整毛片| 亚洲色图视频网| 美女免费视频一区二区| 一本色道久久综合亚洲91| 欧美精品一区二区三区蜜臀| 亚洲精选免费视频| 国产一区二区伦理片| 欧美日韩aaaaa| 国产精品美女视频| 久久99精品久久只有精品| 在线视频一区二区三区| 久久精品一二三| 日韩精品电影一区亚洲| 成人av在线资源网| 久久综合成人精品亚洲另类欧美 | 精品在线亚洲视频| 色婷婷亚洲一区二区三区| 久久久久久久久免费| 日韩精品电影在线| 日本韩国精品一区二区在线观看| 久久精品一区二区| 美女视频第一区二区三区免费观看网站| 99国产精品久久| 国产性色一区二区| 免费成人小视频| 欧美日韩精品一区二区天天拍小说| 国产精品美女久久久久aⅴ| 另类欧美日韩国产在线| 欧美美女bb生活片| 一区二区三区四区高清精品免费观看 | 视频一区二区三区入口| 91女厕偷拍女厕偷拍高清| 久久精品欧美一区二区三区不卡| 香蕉影视欧美成人| 色综合久久久久| 国产精品久久久久久久第一福利| 九九**精品视频免费播放| 欧美日韩高清一区二区| 一区二区在线电影| 91亚洲精华国产精华精华液| 国产日韩欧美高清在线| 激情六月婷婷综合| 精品精品欲导航| 日本不卡视频在线观看| 欧美剧情片在线观看| 亚洲成人在线免费| 欧美日韩一区二区欧美激情| 亚洲欧美在线aaa| 成人高清视频免费观看| 国产日韩欧美电影| 国产不卡免费视频| 日本一区二区不卡视频| 高清av一区二区| 欧美国产精品中文字幕| 国产99久久久国产精品| 亚洲国产精品黑人久久久| 国产ts人妖一区二区| 久久九九久精品国产免费直播| 韩日av一区二区| 国产日韩欧美精品在线| 成人午夜av影视| 亚洲欧洲一区二区三区| 91在线国产福利| 一区二区三区在线观看国产| 色国产综合视频| 午夜精品影院在线观看| 欧美顶级少妇做爰| 久久精品久久久精品美女| 精品国内二区三区| 国产成人超碰人人澡人人澡| 日韩国产欧美三级| 这里只有精品免费| 国产在线精品不卡| 综合亚洲深深色噜噜狠狠网站| 91网站在线播放| 亚洲成人综合在线| 精品噜噜噜噜久久久久久久久试看| 国内成+人亚洲+欧美+综合在线| 国产欧美日韩三级| 91黄色免费版| 日韩av午夜在线观看| 久久久精品影视| 99vv1com这只有精品| 婷婷国产在线综合| 国产亚洲一区二区在线观看| 不卡一区二区中文字幕| 亚洲gay无套男同| 精品国产一区二区国模嫣然| 国产91精品露脸国语对白| 一区二区三区国产精华| 91精品国产综合久久精品麻豆| 国产综合久久久久久鬼色 | 亚洲午夜激情av| 精品国产乱码久久久久久闺蜜| 成人激情黄色小说| 天天色天天操综合| 中文字幕精品一区| 91精品国产欧美一区二区| 国产成人一区在线| 午夜亚洲国产au精品一区二区| 久久综合狠狠综合| 欧美丝袜自拍制服另类| 国产69精品久久久久777| 亚洲妇熟xx妇色黄| 国产亚洲精品中文字幕| 欧美性三三影院| 国产99一区视频免费 | 在线精品视频免费播放| 国产精品2024| 亚洲大型综合色站| 国产精品久久久久婷婷| 日韩片之四级片| 色综合天天狠狠| 国内精品自线一区二区三区视频| 亚洲欧美另类综合偷拍| 久久综合久久99| 欧美福利视频导航| 成人99免费视频| 国模娜娜一区二区三区| 视频一区二区不卡| 亚洲自拍偷拍麻豆| 国产欧美日韩不卡| 日韩欧美在线不卡| 欧美日韩第一区日日骚| 99国产精品久久| 国产黑丝在线一区二区三区| 美国十次综合导航| 天天影视涩香欲综合网| 中文字幕日韩av资源站| 久久久精品国产免大香伊| 欧美猛男男办公室激情| 一本色道久久综合亚洲精品按摩| 国产不卡视频在线播放| 极品少妇xxxx精品少妇| 天堂va蜜桃一区二区三区漫画版| 国产精品色哟哟网站| 国产日韩欧美一区二区三区乱码| 日韩精品一区二区在线观看| 在线观看国产一区二区| 91美女在线视频| caoporn国产精品| 国产成人99久久亚洲综合精品| 精品中文字幕一区二区小辣椒| 日本视频免费一区| 日韩国产在线观看一区| 亚洲成a人v欧美综合天堂| 亚洲一区二三区| 亚洲在线视频免费观看| 一区二区在线观看视频在线观看| 国产精品九色蝌蚪自拍|