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

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

?? myimage.cpp

?? 電子監控的網絡編程實例
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
		if( err != IMAGE_OK)
			return err;
		
		memset(&bfh, 0, sizeof(bfh));
		bfh.bfType = 'MB';
		bfh.bfOffBits = 54;
		bfh.bfSize = dwSize + 54;

		p = (PBYTE)::GlobalLock(hImage);
		if(!p)
			return IMAGE_ERR_LOCK;
		memcpy(p, &bfh, sizeof(bfh));
		memcpy(p + 14, &m_bih, sizeof(m_bih));
		memcpy(p + 54, pImage, dwSize);
		b = ::GlobalUnlock(hImage);
		/*win98下禁止使用
		if(!b)
		return IMAGE_ERR_UNLOCK;*/
	}
	return IMAGE_OK;
}

//填充BITMAPINFOHEADER 結構
IMAGE_ERROR CMyImage::SetBih(int width, int height, int bitcount)
{
//	BITMAPINFOHEADER bih;
	memset( &m_bih, 0, sizeof( BITMAPINFOHEADER ) );
	m_bih.biSize = sizeof( BITMAPINFOHEADER );
	m_bih.biWidth = width;
	m_bih.biHeight = height;
	m_bih.biPlanes = 1;
	m_bih.biBitCount = bitcount;
	return IMAGE_OK;
}

//獲得BITMAPINFOHEADER結構相關參數
IMAGE_ERROR CMyImage::GetBih(int &width, int &height, int& bitcount)
{
	width = m_bih.biWidth;
	height = m_bih.biHeight;
	bitcount = m_bih.biBitCount;
	return IMAGE_OK;
}

/***---------------------------------------------------------------------****
將DIB位圖轉換為DDB位圖
****---------------------------------------------------------------------***/
HBITMAP CMyImage::DIBtoDDB(HDIB hDib)
{
	LPBITMAPINFOHEADER	lpbi;
	HBITMAP 		hbm;
	CPalette		pal;
	CPalette*		pOldPal;
	CClientDC		dc(NULL);
	
	if (hDib == NULL)
		return NULL;
	LPVOID aa=GlobalLock(hDib); 
	if(!aa)
		return NULL;
	
	lpbi = (LPBITMAPINFOHEADER)aa;//hDib;
	
	int nColors = lpbi->biClrUsed ? lpbi->biClrUsed : 1 << lpbi->biBitCount;
	
	BITMAPINFO &bmInfo = *(LPBITMAPINFO)aa;//hDib ;
	LPVOID lpDIBBits;
	if( bmInfo.bmiHeader.biBitCount > 8 )
		lpDIBBits = (LPVOID)((LPDWORD)(bmInfo.bmiColors + 
		bmInfo.bmiHeader.biClrUsed) + 
		((bmInfo.bmiHeader.biCompression == BI_BITFIELDS) ? 3 : 0));
	else
		lpDIBBits = (LPVOID)(bmInfo.bmiColors + nColors);
	
	// Create and select a logical palette if needed
	if( nColors <= 256 && dc.GetDeviceCaps(RASTERCAPS) & RC_PALETTE)
	{
		UINT nSize = sizeof(LOGPALETTE) + (sizeof(PALETTEENTRY) * nColors);
		LOGPALETTE *pLP = (LOGPALETTE *) new BYTE[nSize];
		
		pLP->palVersion = 0x300;
		pLP->palNumEntries = nColors;
		
		for( int i=0; i < nColors; i++)
		{
			pLP->palPalEntry[i].peRed = bmInfo.bmiColors[i].rgbRed;
			pLP->palPalEntry[i].peGreen = bmInfo.bmiColors[i].rgbGreen;
			pLP->palPalEntry[i].peBlue = bmInfo.bmiColors[i].rgbBlue;
			pLP->palPalEntry[i].peFlags = 0;
		}
		
		pal.CreatePalette( pLP );
		
		delete[] pLP;
		
		// Select and realize the palette
		pOldPal = dc.SelectPalette( &pal, FALSE );
		dc.RealizePalette();
	}
	
	
	hbm = CreateDIBitmap(dc.GetSafeHdc(),		// handle to device context
		(LPBITMAPINFOHEADER)lpbi,	// pointer to bitmap info header 
		(LONG)CBM_INIT,			// initialization flag
		lpDIBBits,			// pointer to initialization data 
		(LPBITMAPINFO)lpbi,		// pointer to bitmap info
		DIB_RGB_COLORS );		// color-data usage 
	
	if (pal.GetSafeHandle())
		dc.SelectPalette(pOldPal,FALSE);
	GlobalUnlock(hDib);
	//GlobalFree(hDib);
	//DeleteObject(hbm);
	
	return hbm;
}

/*
DDB位圖轉換為DIB位圖
*/
HDIB CMyImage::DDBtoDIB(HBITMAP hBitmap, HPALETTE hPal)
{
	BITMAP			bm;
	BITMAPINFOHEADER	bi;
	LPBITMAPINFOHEADER 	lpbi;
	DWORD			dwLen;
	HANDLE			hDIB;
	HANDLE			handle;
	HDC 			hDC;
//	HPALETTE		hPal;


	if( !hBitmap )
		return NULL;

	// The function has no arg for bitfields
//	if( dwCompression == BI_BITFIELDS )
//		return NULL;

	// If a palette has not been supplied use defaul palette
//	hPal = (HPALETTE) pPal->GetSafeHandle();
	if (hPal==NULL)
		hPal = (HPALETTE) GetStockObject(DEFAULT_PALETTE);

	// Get bitmap information
	//bitmap.GetObject(sizeof(bm),(LPSTR)&bm);
	if (!::GetObject(hBitmap, sizeof(bm), &bm)) return NULL;
	
	

	// Initialize the bitmapinfoheader
	bi.biSize		= sizeof(BITMAPINFOHEADER);
	bi.biWidth		= bm.bmWidth;
	bi.biHeight 		= bm.bmHeight;
	bi.biPlanes 		= 1;
	bi.biBitCount		= 24;//GetBitCount(m_cfg);//bm.bmPlanes * bm.bmBitsPixel;
	bi.biCompression	= BI_RGB;
	bi.biSizeImage		= 0;
	bi.biXPelsPerMeter	= 0;
	bi.biYPelsPerMeter	= 0;
	bi.biClrUsed		= 0;
	bi.biClrImportant	= 0;

	// Compute the size of the  infoheader and the color table
	int nColors = (1 << bi.biBitCount);
	if( nColors > 256 ) 
		nColors = 0;
	dwLen  = bi.biSize + nColors * sizeof(RGBQUAD);

	// We need a device context to get the DIB from
	hDC = GetDC(NULL);
	hPal = SelectPalette(hDC,hPal,FALSE);
	RealizePalette(hDC);
//	ReleaseDC( NULL, hDC ); 

	// Allocate enough memory to hold bitmapinfoheader and color table
	hDIB = GlobalAlloc(GMEM_FIXED,dwLen);

	if (!hDIB){
		SelectPalette(hDC,hPal,FALSE);
		ReleaseDC(NULL,hDC);
		return NULL;
	}

	lpbi = (LPBITMAPINFOHEADER)hDIB;

	*lpbi = bi;

	// Call GetDIBits with a NULL lpBits param, so the device driver 
	// will calculate the biSizeImage field 
//	GetDIBits(hDC, (HBITMAP)bitmap.GetSafeHandle(), 0L, (DWORD)bi.biHeight,
//			(LPBYTE)NULL, (LPBITMAPINFO)lpbi, (DWORD)DIB_RGB_COLORS);
	GetDIBits(hDC, hBitmap, 0L, (DWORD)bi.biHeight,
				(LPBYTE)NULL, (LPBITMAPINFO)lpbi, (DWORD)DIB_RGB_COLORS);

	bi = *lpbi;

	// If the driver did not fill in the biSizeImage field, then compute it
	// Each scan line of the image is aligned on a DWORD (32bit) boundary
	if (bi.biSizeImage == 0){
		bi.biSizeImage = ((((bi.biWidth * bi.biBitCount) + 31) & ~31) / 8) 
						* bi.biHeight;

		// If a compression scheme is used the result may infact be larger
		// Increase the size to account for this.
//		if (dwCompression != BI_RGB)
//			bi.biSizeImage = (bi.biSizeImage * 3) / 2;
	}

	// Realloc the buffer so that it can hold all the bits
	dwLen += bi.biSizeImage;
	if (handle = GlobalReAlloc(hDIB, dwLen, GMEM_MOVEABLE))
		hDIB = handle;
	else{
		GlobalFree(hDIB);

		// Reselect the original palette
		SelectPalette(hDC,hPal,FALSE);
		ReleaseDC(NULL,hDC);
		return NULL;
	}

	// Get the bitmap bits
	lpbi = (LPBITMAPINFOHEADER)hDIB;

	// FINALLY get the DIB
/*	BOOL bGotBits = GetDIBits( hDC, (HBITMAP)bitmap.GetSafeHandle(),
				0L,				// Start scan line
				(DWORD)bi.biHeight,		// # of scan lines
				(LPBYTE)lpbi 			// address for bitmap bits
				+ (bi.biSize + nColors * sizeof(RGBQUAD)),
				(LPBITMAPINFO)lpbi,		// address of bitmapinfo
				(DWORD)DIB_RGB_COLORS);		// Use RGB for color table
*/
	BOOL bGotBits = GetDIBits( hDC, hBitmap,
		0L,				// Start scan line
		(DWORD)bi.biHeight,		// # of scan lines
		(LPBYTE)lpbi 			// address for bitmap bits
		+ (bi.biSize + nColors * sizeof(RGBQUAD)),
		(LPBITMAPINFO)lpbi,		// address of bitmapinfo
		(DWORD)DIB_RGB_COLORS);		// Use RGB for color table
	
	if( !bGotBits )
	{
		GlobalFree(hDIB);
		
		SelectPalette(hDC,hPal,FALSE);
		ReleaseDC(NULL,hDC);
		return NULL;
	}

	SelectPalette(hDC,hPal,FALSE);
	ReleaseDC(NULL,hDC);

//	DrawDIB(HDIB(hDIB),300,400);
//	bitmap.DeleteObject();
	
	return HDIB(hDIB);
}

HDIB CMyImage::DDBtoDIB(CBitmap *pBitmap, CPalette *pPalette)
{
	if (!pBitmap)
		return NULL;
	if(pPalette)
		return DDBtoDIB( (HBITMAP)(pBitmap->GetSafeHandle()),
					(HPALETTE)(pPalette->GetSafeHandle()) );
	else
		return DDBtoDIB( (HBITMAP)(pBitmap->GetSafeHandle()), NULL );
}
/*
在DIB位圖上疊加文字和號牌圖片
//修改字體
LOGFONT lf;
::ZeroMemory(&lf,sizeof(lf));
lf.lfHeight=160;
lf.lfWeight=FW_BOLD;
//	lf.lfItalic=TRUE;
::lstrcpy(lf.lfFaceName,_T("宋體"));
*/
void CMyImage::DibAdd(HDIB &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));
	}

	LPBITMAPINFOHEADER lpbih;
	// 計算位圖信息
	lpbih =(LPBITMAPINFOHEADER)::GlobalLock(hDib);
	if( !lpbih )
		return;
	LONG dibWidth = lpbih->biWidth;
	LONG dibHeight = lpbih->biHeight;
	::GlobalUnlock(hDib);
	
	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,HBITMAP(bitmap.m_hObject));
	//	::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;
	}
	
	
	pMemory->Detach();
	
	
	//	ReleaseDC(NULL,dcMemory);
	DeleteDC(dcMemory);
	ReleaseDC(NULL,pDC);
	DeleteDC(pMemory->GetSafeHdc());
	//	ReleaseDC(NULL,pMemory->GetSafeHdc());
	
	delete pMemory;
	
	HDIB tmpHDIB = DDBtoDIB(bitmap, NULL);
	
	DWORD dwDIBSize=GlobalSize(hDib);
	
	LPSTR				 lpDIBHdr;  // Pointer to BITMAPINFOHEADER
	LPBITMAPINFOHEADER lpbmi;		// pointer to a Win 3.0-style DIB
	LPBITMAPCOREHEADER lpbmc;		// pointer to an other-style DIB
	int h;
	// point to the header (whether old or Win 3.0
	lpDIBHdr  = (LPSTR) ::GlobalLock((HGLOBAL) hDib);
	lpbmi = (LPBITMAPINFOHEADER)lpDIBHdr;
	lpbmc = (LPBITMAPCOREHEADER)lpDIBHdr;
	// return the DIB height if it is a Win 3.0 DIB 
	if (IS_WIN30_DIB(lpDIBHdr))
		h=lpbmi->biHeight;
	else  // it is an other-style DIB, so return its height 
		h=lpbmc->bcHeight;
	
	::GlobalUnlock((HGLOBAL) hDib);
	DWORD start=dwDIBSize/h;
	
//	GlobalReAlloc(hDib,dwDIBSize,GMEM_MODIFY);
	LPVOID pS=GlobalLock(tmpHDIB);
	if(!pS)
	{
		GlobalFree(tmpHDIB);
		return;	
	}
	LPVOID pD=GlobalLock(hDib);
	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)+40+(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)+40+(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(hDib);
			GlobalFree(tmpHDIB);
			return;
		}
		PBYTE ph = (PBYTE)::GlobalLock(tmpHDIB2);
		if(!ph)
		{
			GlobalUnlock(tmpHDIB);
			GlobalUnlock(hDib);
			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)+40+(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(hDib);
	GlobalFree(tmpHDIB);

}

void CMyImage::ImageAdd(CString text, CString text2, LPLOGFONT plf, HBITMAP hBitmap, int xstart, int ystart)
{
	if(!hImage)
		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));
	}

	LPBITMAPINFOHEADER lpbih;
	PBYTE ph2=NULL;
	ph2 = (PBYTE)::GlobalLock(hImage);
	if( !ph2 )
		return;
	// 計算位圖信息
	lpbih =(LPBITMAPINFOHEADER)(ph2+14);
	if( !lpbih )
		return;
	LONG dibWidth = lpbih->biWidth;
	LONG dibHeight = lpbih->biHeight;
	::GlobalUnlock(hImage);
	
	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,HBITMAP(bitmap.m_hObject));
	//	::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;
	}
	
	
	pMemory->Detach();
	
	
	//	ReleaseDC(NULL,dcMemory);
	DeleteDC(dcMemory);
	ReleaseDC(NULL,pDC);
	DeleteDC(pMemory->GetSafeHdc());
	//	ReleaseDC(NULL,pMemory->GetSafeHdc());
	
	delete pMemory;
	
	HDIB tmpHDIB = DDBtoDIB(bitmap, NULL);
	
	DWORD dwDIBSize=GlobalSize(hImage) - 14;
	
	LPSTR				 lpDIBHdr;  // Pointer to BITMAPINFOHEADER
	LPBITMAPINFOHEADER lpbmi;		// pointer to a Win 3.0-style DIB
	LPBITMAPCOREHEADER lpbmc;		// pointer to an other-style DIB
	int h;
	// point to the header (whether old or Win 3.0
	lpDIBHdr  = (LPSTR) ::GlobalLock(hImage);
	lpDIBHdr = lpDIBHdr + 14;
	lpbmi = (LPBITMAPINFOHEADER)lpDIBHdr;
	lpbmc = (LPBITMAPCOREHEADER)lpDIBHdr;
	// return the DIB height if it is a Win 3.0 DIB 
	if (IS_WIN30_DIB(lpDIBHdr))
		h=lpbmi->biHeight;
	else  // it is an other-style DIB, so return its height 
		h=lpbmc->bcHeight;
	
	::GlobalUnlock(hImage);
	DWORD start=dwDIBSize/h;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本在线不卡视频| 国产激情视频一区二区在线观看 | 国产一区视频导航| 亚洲欧洲av色图| 2020日本不卡一区二区视频| 欧美丝袜自拍制服另类| av福利精品导航| 国产精品一区二区男女羞羞无遮挡| 亚洲品质自拍视频| 亚洲国产精品成人久久综合一区 | 日韩—二三区免费观看av| 亚洲精品视频免费观看| 欧美高清在线精品一区| 欧美一级艳片视频免费观看| 色香蕉久久蜜桃| 成人av网站在线观看免费| 国产资源在线一区| 国产美女一区二区| 国模少妇一区二区三区| 久久国产精品免费| 免费观看久久久4p| 天堂成人免费av电影一区| 亚洲一区二区精品久久av| 一区二区三区国产精华| 亚洲免费观看高清完整| 中文字幕综合网| 亚洲精品亚洲人成人网| 亚洲国产成人高清精品| 亚洲成av人片www| 亚洲国产一区二区a毛片| 亚洲精品国产精品乱码不99| 亚洲国产日日夜夜| 日韩激情av在线| 五月激情综合网| 久久99精品久久久| 成人h动漫精品一区二| 色天天综合色天天久久| 欧美午夜一区二区三区免费大片| 欧美无砖专区一中文字| 精品人伦一区二区色婷婷| 国产欧美精品一区aⅴ影院 | 另类小说欧美激情| 国产成人精品三级| 欧美在线观看视频一区二区 | 中文字幕不卡在线| 亚洲二区视频在线| 久久99精品国产麻豆不卡| 成人一区在线看| 欧美日韩一本到| 久久久久久99久久久精品网站| 国产精品理论在线观看| 成人国产免费视频| 欧美图区在线视频| 久久午夜羞羞影院免费观看| 综合久久久久综合| 久久成人免费电影| 在线观看一区二区视频| 精品国产免费久久| 亚洲一区二区精品视频| 成人免费高清视频在线观看| 久久亚洲一区二区三区四区| 日产精品久久久久久久性色| 51精品国自产在线| 一区二区在线观看免费| 一本到三区不卡视频| 国产精品传媒视频| eeuss鲁一区二区三区| 国产精品久久久一区麻豆最新章节| 国产在线播放一区| 久久久久久久久久久久久女国产乱| 极品少妇一区二区三区精品视频| 欧美一级高清大全免费观看| 亚洲午夜精品久久久久久久久| 欧美体内she精视频| 午夜激情一区二区三区| 91精品国产综合久久久久久久久久 | 日本韩国欧美三级| 中文字幕亚洲欧美在线不卡| bt欧美亚洲午夜电影天堂| 日本一区二区综合亚洲| 国产精品亚洲专一区二区三区 | 欧美午夜一区二区三区免费大片| 亚洲欧美aⅴ...| 欧美日韩不卡一区| 国内精品自线一区二区三区视频| 精品国一区二区三区| 激情欧美一区二区三区在线观看| 精品三级在线看| 成人久久视频在线观看| 国产精品区一区二区三| 欧美视频在线观看一区| 三级精品在线观看| 国产欧美日韩综合精品一区二区| 99视频国产精品| 伊人色综合久久天天| 51午夜精品国产| 国产99久久久国产精品免费看| 亚洲欧洲在线观看av| 欧美性受极品xxxx喷水| 国产一区二区电影| 一区二区三区蜜桃网| 精品欧美乱码久久久久久1区2区| 成人av网站在线观看| 日本大胆欧美人术艺术动态| 中文字幕欧美三区| 欧美日韩在线播放一区| 国模冰冰炮一区二区| 亚洲香肠在线观看| 久久久国产午夜精品| 欧美欧美午夜aⅴ在线观看| 韩国欧美国产1区| 性做久久久久久免费观看| 久久先锋影音av鲁色资源| 欧美色欧美亚洲另类二区| 国产成人精品综合在线观看| 麻豆精品在线播放| 亚洲一区二区三区国产| 国产女人aaa级久久久级 | 91色视频在线| 免费欧美在线视频| 亚洲影视在线观看| 国产精品卡一卡二| 久久日一线二线三线suv| 欧美精品久久99| 在线看日韩精品电影| 国产69精品久久777的优势| 乱一区二区av| 人妖欧美一区二区| 偷拍一区二区三区四区| 亚洲777理论| 亚洲欧美偷拍卡通变态| 尤物在线观看一区| 亚洲天堂网中文字| 亚洲日本va在线观看| 一区二区三区在线播| 亚洲一二三四在线观看| 午夜私人影院久久久久| 亚洲第一av色| 2020国产成人综合网| 欧美亚洲自拍偷拍| 欧美日韩免费一区二区三区 | 欧美在线不卡视频| 欧美日韩二区三区| 久久网这里都是精品| 亚洲图片激情小说| 亚洲国产成人91porn| 日韩精品亚洲一区二区三区免费| 日本亚洲天堂网| 国产一区二区导航在线播放| 国产精品综合二区| av一区二区三区四区| 在线播放91灌醉迷j高跟美女 | av亚洲精华国产精华精华| 91福利社在线观看| 日韩免费电影一区| 国产精品美女一区二区在线观看| 久久婷婷色综合| 一区二区三区在线高清| 精品系列免费在线观看| 91麻豆国产自产在线观看| 7777女厕盗摄久久久| 久久九九99视频| 亚洲成人av福利| 国产美女娇喘av呻吟久久| 色悠悠久久综合| 精品国产一区二区三区av性色| 亚洲色图第一区| 精品亚洲成a人| 欧美性色aⅴ视频一区日韩精品| 欧美一卡二卡三卡| 亚洲三级在线看| 国产精品66部| 欧美巨大另类极品videosbest | 欧美性做爰猛烈叫床潮| 精品日韩在线一区| 亚洲免费观看高清| 狠狠色丁香婷综合久久| 色综合久久综合| 亚洲精品在线一区二区| 亚洲国产日韩在线一区模特 | 午夜精品久久久久久久久| 国产一区二区免费看| 欧美久久久久久久久久| 中文字幕一区二区三区在线观看| 天堂蜜桃91精品| 91行情网站电视在线观看高清版| 国产亚洲视频系列| 日本亚洲最大的色成网站www| 97精品国产露脸对白| 久久综合色8888| 五月天激情小说综合| 91国产丝袜在线播放| 国产精品热久久久久夜色精品三区| 青青草精品视频| 欧美日韩精品三区| 亚洲另类在线视频| 91亚洲精品一区二区乱码| 国产精品久久网站| fc2成人免费人成在线观看播放| 国产性天天综合网|