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

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

?? myimage.cpp

?? 電子監控的網絡編程實例
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
// MyImage.cpp: implementation of the CMyImage class.
/********************************************************************************
//圖像處理類--主要是圖像讀取顯示保存
---沒有處理調色板-對256以下圖像繪制存在問題
// Written by: YiJian Feng
// Email: netfyee@hotmail.com
// Last Edit: 2003-9-5 
**********************************************************************************/

#include "stdafx.h"
#include "MyImage.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CMyImage::CMyImage()
{
	hImage = NULL;
	memset(&m_bih, 0, 40);
}
//根據HBITMAP(DDB位圖)產生Image
CMyImage::CMyImage(HBITMAP hBitmap)
{
	memset(&m_bih, 0, 40);
	IMAGE_ERROR err = LoadDDB(hBitmap);
}

//根據HDIB(DIB位圖)產生Image
CMyImage::CMyImage(HDIB hDib)
{
	memset(&m_bih, 0, 40);
	IMAGE_ERROR err = LoadDIB(hDib);
}

//根據 圖像字節流 產生Image/
//其中iMode有三種方式 =0 包括BITMAPFILEHEADER+BITMAPINFOHEADER+圖像字節;
//1包括BITMAPINFOHEADER+圖像字節;
//2圖像字節;但這時必須調用SetDibInfo()來設置位圖信息;
CMyImage::CMyImage(PBYTE pImage, DWORD dwSize, int iMode)
{
	memset(&m_bih, 0, 40);
	IMAGE_ERROR err = LoadBuf(pImage, dwSize, iMode);
}

//根據 文件來 產生 Image
CMyImage::CMyImage(CString FileName)
{
	memset(&m_bih, 0, 40);
	IMAGE_ERROR err = LoadFile(FileName);
}

CMyImage::~CMyImage()
{
	DeleteObject();
}

//刪除圖像Image對象
IMAGE_ERROR CMyImage::DeleteObject()
{
	if(hImage)
	{
		GlobalFree(hImage);
		hImage = NULL;
	}
	return IMAGE_OK;
}

//是否是空對象
BOOL CMyImage::IsEmpty()
{
	if(hImage)
		return TRUE;
	else
		return FALSE;
}

IMAGE_ERROR CMyImage::CreateObject(DWORD dwSize)
{
	IMAGE_ERROR err = DeleteObject();
	if (err!=IMAGE_OK)
		return err;
	hImage = ::GlobalAlloc(GHND/*GMEM_FIXED*/, dwSize);
	if(hImage)
		return IMAGE_OK;
	else
		return IMAGE_ERR_CREATE;
}

//加載DDB位圖
IMAGE_ERROR CMyImage::LoadDDB(HBITMAP hBitmap)
{
	BITMAP bitmap;
    WORD biBits;			// 象素位數
    UINT wLineLen;			// 行長度
    DWORD wColSize;			// 調色板大小
    DWORD dwSize;			// 文件長度 --=&&=--
	DWORD wImageSize;		// 圖像大小

	PBYTE p1 = NULL; 
	
	// 計算位圖文件每個像素所占字節數
	::GetObject(hBitmap, sizeof(BITMAP), &bitmap);
    
	biBits = (WORD)(bitmap.bmPlanes * bitmap.bmBitsPixel);
    wLineLen = WIDTHBYTES(bitmap.bmWidth * biBits);//(bitmap.bmWidth * biBits + 31 ) / 32 * 4;
    wColSize = sizeof(RGBQUAD) * (( biBits <= 8 ) ? 1 << biBits : 0 );
    dwSize = sizeof(BITMAPINFOHEADER) + wColSize + 
		(DWORD)(UINT)wLineLen * (DWORD)(UINT)bitmap.bmHeight;
	wImageSize = dwSize - sizeof(BITMAPINFOHEADER) - wColSize;
	
    if (biBits <= 1)
	{
		biBits = 1;
	}
    else if (biBits <= 4)
	{
		biBits = 4;
	}
    else if (biBits <= 8)
	{
		biBits = 8;
	}
    else
	{
		biBits = 24;
	}
	
	// 初始分配
	IMAGE_ERROR err = CreateObject(dwSize + sizeof(BITMAPFILEHEADER));
	if(err != IMAGE_OK)
		return err;
//	hglobal = ::GlobalAlloc(GHND, dwSize + 14);
//	m_hglobal = (HGLOBAL)::GlobalLock(hglobal);

	BITMAPINFOHEADER bih;
	BITMAPFILEHEADER bfh;
	
	// 建立文件頭信息
	::memset(&bfh, 0, sizeof(BITMAPFILEHEADER));
	bfh.bfType = 'MB';
	bfh.bfSize = dwSize + sizeof(BITMAPFILEHEADER);
	bfh.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
	p1 = (PBYTE)::GlobalLock(hImage);
	if (!p1)
		return IMAGE_ERR_LOCK;
	::memcpy(p1, &bfh, sizeof(BITMAPFILEHEADER));
	
	// 建立位圖頭信息
	::memset(&bih, 0, sizeof(BITMAPINFOHEADER));
    bih.biSize = sizeof(BITMAPINFOHEADER);
    bih.biWidth = bitmap.bmWidth;
    bih.biHeight = bitmap.bmHeight;
    bih.biPlanes = 1;
    bih.biBitCount = biBits;
    bih.biCompression = BI_RGB;
    bih.biSizeImage = wImageSize;
    bih.biXPelsPerMeter = 0;
    bih.biYPelsPerMeter = 0;
    bih.biClrUsed = ( biBits <= 8 ) ? 1 << biBits : 0;
    bih.biClrImportant = 0;
	::memcpy(p1 + sizeof(BITMAPINFOHEADER), &bih, sizeof(BITMAPINFOHEADER));

	//set dib
	memcpy(&m_bih, &bih, sizeof(BITMAPINFOHEADER));
	
	// 建立位圖體信息
	::memcpy(p1 + bfh.bfOffBits, bitmap.bmBits, wImageSize);
	BOOL a = GlobalUnlock(hImage);
	/*win98下不需要判斷
	if(!a)
	return IMAGE_ERR_UNLOCK;
	*/
	return IMAGE_OK;
}

//加載DDB位圖
IMAGE_ERROR CMyImage::LoadDDB(CBitmap *pBitmap)
{
	return LoadDDB( (HBITMAP)(pBitmap->GetSafeHandle()) );
}

IMAGE_ERROR CMyImage::LoadDIB(HDIB hDib)
{
	LPBYTE lpdib;
	LPBITMAPINFOHEADER lpbih;
	BITMAPFILEHEADER bfh;
		
	// 計算位圖信息
	lpdib =(LPBYTE)::GlobalLock(hDib);
	if( !lpdib )
		return IMAGE_ERR_LOCK;
	lpbih = (LPBITMAPINFOHEADER)lpdib;
	DWORD dwImageSize = lpbih->biSizeImage;

	// 建立文件頭信息
	::memset(&bfh, 0, 14);
	bfh.bfType = 'MB';
	bfh.bfSize = dwImageSize + 54; // dwSize + 14;
	bfh.bfOffBits = 54;

	IMAGE_ERROR err = CreateObject(dwImageSize + 54);
	if(err != IMAGE_OK)
	{
		BOOL b = ::GlobalUnlock(hDib);
	/*win98下必須去除
	if(!b)
		return IMAGE_ERR_UNLOCK;
	*/
		return err;
	}
	PBYTE p1 = NULL;
	p1 = (PBYTE)::GlobalLock(hImage);
	if(!p1)
	{
		BOOL b = ::GlobalUnlock(hDib);
	/*win98下必須去除
	if(!b)
		return IMAGE_ERR_UNLOCK;
	*/
		return IMAGE_ERR_LOCK;
	}
	memcpy(p1, &bfh, 14);
	
	// 建立位圖頭并位圖體信息
	memcpy(p1 + 14, lpdib, dwImageSize + 40);

	//set dib
	memcpy(&m_bih, lpbih, sizeof(BITMAPINFOHEADER));

	BOOL b = ::GlobalUnlock(hDib);
	/*win98下必須去除
	if(!b)
		return IMAGE_ERR_UNLOCK;
	*/
	
	// 解鎖
	b = ::GlobalUnlock(hImage);
	/*win98下必須去除
	if(!b)
		return IMAGE_ERR_UNLOCK;
	*/
	return IMAGE_OK;
	
}
//獲得圖像尺寸
IMAGE_ERROR CMyImage::ImageSize(int& dwWidth, int &dwHeight)
{
	dwWidth = 0; dwHeight = 0;
	if(!hImage)
		return IMAGE_NULL;
	else
	{
		LPSTR			   lpDIBHdr;  // Pointer to BITMAPINFOHEADER
		LPBYTE			   lpImage = NULL;
		LPBITMAPINFOHEADER lpbmi;		// pointer to a Win 3.0-style DIB
		LPBITMAPCOREHEADER lpbmc;		// pointer to an other-style DIB
		// point to the header (whether old or Win 3.0
		lpImage  = (LPBYTE) ::GlobalLock(hImage);
		if (!lpImage)
			return IMAGE_ERR_LOCK;
		lpDIBHdr = LPSTR(lpImage + 14);
		lpbmi = (LPBITMAPINFOHEADER)lpDIBHdr;
		lpbmc = (LPBITMAPCOREHEADER)lpDIBHdr;
		// return the DIB height if it is a Win 3.0 DIB 
		if (IS_WIN30_DIB(lpDIBHdr))
		{
			dwHeight = lpbmi->biHeight;
			dwWidth  = lpbmi->biWidth;
		}
		else  // it is an other-style DIB, so return its height 
		{
			dwHeight = lpbmc->bcHeight;
			dwWidth = lpbmc->bcWidth;
		}
		BOOL b = ::GlobalUnlock(hImage);
			/*win98下必須去除
	if(!b)
		return IMAGE_ERR_UNLOCK;
	*/
		
	}
	return IMAGE_OK;

}

//從文件加載圖像
IMAGE_ERROR CMyImage::LoadFile(CString FileName)
{
	ASSERT(!FileName.IsEmpty());
	IMAGE_ERROR err = IMAGE_OK;

	CFile file;
	CFileException fe;	
	if (!file.Open(FileName, CFile::modeRead | CFile::shareDenyNone , &fe))
	{
		//		MessageBox(NULL,"無法讀取文件!","錯誤",MB_ICONSTOP);
		
		return IMAGE_ERR_FILENOTEXIST;
	}

	CString m_strName=FileName;
	CString m_strFileExt=FileName.Right(3);
	m_strFileExt.MakeUpper();
	if(m_strFileExt=="BMP")
	{
		TRY
		{
			err = LoadFile(file);
			if( err != IMAGE_OK )
			{
				file.Close();
				return err;
			}
		}
		CATCH (CFileException, eLoad)
		{
			file.Abort(); // will not throw an exception
			return IMAGE_ERR_READFILE;
		}
		END_CATCH
	}
	else if(m_strFileExt=="JPG")
	{
	//	file.Close();
		err = LoadJPG(FileName);
		if(err != IMAGE_OK)
			return err;
	}
	else
	{
		file.Close();
		return IMAGE_ERR_FILENOTEXIST;
	}
	
	file.Close();
	return IMAGE_OK;
}

//讀位圖BMP文件
IMAGE_ERROR CMyImage::LoadFile(CFile &file)
{
	BITMAPFILEHEADER bmfHeader;
	LPBITMAPINFOHEADER lpbmi=NULL;		// pointer to a Win 3.0-style DIB
	LPBITMAPINFO		lpbmifo=NULL;
	BITMAPINFO			BitmapInfo;
	LPBYTE pDIB=NULL;
	
	// Get length of DIB in bytes for use when reading
	DWORD m_dwBitsSize = file.GetLength()-sizeof(BITMAPFILEHEADER);
	
	// Go read the DIB file header and check if it's valid.
	if(file.Read((LPSTR)&bmfHeader, sizeof(bmfHeader)) != sizeof(bmfHeader))
		return IMAGE_ERR_READFILE;
	
	if (bmfHeader.bfType != DIB_HEADER_MARKER)
		return IMAGE_ERR_READFILE;
	
	if(file.Read((LPSTR)&BitmapInfo, sizeof(BitmapInfo)) != sizeof(BitmapInfo))
		return IMAGE_ERR_READFILE;

	//set dib
	memcpy(&m_bih, &(BitmapInfo.bmiHeader), sizeof(BITMAPINFOHEADER));
	
	if(BitmapInfo.bmiHeader.biBitCount!=24)
	{
		//		MessageBox(NULL,"讀取圖像文件錯誤,目前只支持24位真彩色圖像。","讀取圖像文件錯誤",MB_OK|MB_ICONERROR);
		
		return IMAGE_ERR_RGB;
	}
	
	
	DWORD	dwWidth=BitmapInfo.bmiHeader.biWidth;
	DWORD	dwHeight=BitmapInfo.bmiHeader.biHeight;
	DWORD	dwWidthOfByte=WIDTHBYTES(dwWidth*24);
	
	DWORD	dwTemp=dwWidthOfByte*dwHeight+sizeof(BITMAPINFOHEADER);
	if(dwTemp>m_dwBitsSize)
		m_dwBitsSize=dwTemp;
	
	
	DWORD dwDibOffset=bmfHeader.bfOffBits;
	IMAGE_ERROR err = CreateObject(m_dwBitsSize + 14);
	if(err != IMAGE_OK)
	{
		return err;
	}
	// Allocate memory for DIB
//	m_hDIB = (HDIB)::GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT,m_dwBitsSize );
	//Allocate memory error
//	if (m_hDIB == NULL) return FALSE;
	PBYTE aa = NULL;
	aa =(PBYTE)::GlobalLock(hImage);
	if(!aa)
		return IMAGE_ERR_LOCK;
	memcpy(aa, &bmfHeader, 14);
//	memcpy(aa + 14, &(BitmapInfo->bmiHeader), 40);
	pDIB = aa + 14;
	//Point to BITMAPINFOHEADER structure 
	lpbmi=(LPBITMAPINFOHEADER)pDIB;
	lpbmifo=(LPBITMAPINFO)pDIB;
	
//	m_lpBitmapInfoHeader=(LPBITMAPINFOHEADER)pDIB;
	
	file.Seek(sizeof(BITMAPFILEHEADER),CFile::begin);
	// Go read the bits.
	if(file.ReadHuge(pDIB, m_dwBitsSize)!=m_dwBitsSize)
	{
		BOOL b = ::GlobalUnlock(hImage);
		/*win98下不能使用
		if(!b)
		return IMAGE_ERR_UNLOCK;
		*/
		err = DeleteObject();
		if(err != IMAGE_OK)
			return err;
		
		return IMAGE_ERR_READFILE;
	}
	
	if(lpbmi->biCompression!=BI_RGB)
	{
		BOOL b = ::GlobalUnlock(hImage);
		/*win98下不能使用
		if(!b)
		return IMAGE_ERR_UNLOCK;
		*/
		err = DeleteObject();
		if(err != IMAGE_OK)
			return err;

		return IMAGE_ERR_RGB;
	//	return FALSE;
	}
	
	BOOL b = ::GlobalUnlock(hImage);
		/*win98下不能使用
		if(!b)
		return IMAGE_ERR_UNLOCK;
		*/
	return IMAGE_OK;
}
//讀JPG圖像文件
IMAGE_ERROR CMyImage::LoadJPG(CString FileName)
{
	IMAGE_ERROR err = DeleteObject();
	if( err!= IMAGE_OK)
		return err;
	hImage=::LoadJPG(LPCTSTR(FileName));
	if(hImage==NULL)
		return IMAGE_ERR_IMAGELOAD_READ;

	PBYTE lp = NULL;
	lp = (LPBYTE)::GlobalLock(hImage);
	if(!lp)
	{
		return IMAGE_ERR_LOCK;
	}
	//set dib
	memcpy(&m_bih, lp + 14, sizeof(BITMAPINFOHEADER));
	BOOL b = ::GlobalUnlock(hImage);
			/*win98下不能使用
		if(!b)
		return IMAGE_ERR_UNLOCK;
		*/
	
	
	return IMAGE_OK;
}

IMAGE_ERROR CMyImage::LoadBuf(PBYTE pImage, DWORD dwSize, int iMode)
{
	if(!pImage)
		return IMAGE_NULL;
	IMAGE_ERROR err = DeleteObject();
	if (err != IMAGE_OK)
		return err;
	BOOL b = FALSE;
	PBYTE p = NULL;
	BITMAPFILEHEADER bfh;
	
	switch(iMode) {
	case 0:
		err = CreateObject(dwSize);
		if( err != IMAGE_OK)
			return err;
		p = (LPBYTE)::GlobalLock(hImage);
		if(!p)
			return IMAGE_ERR_LOCK;
		memcpy(p, pImage, dwSize);
		//set dib
		memcpy(&m_bih, pImage + 14, sizeof(BITMAPINFOHEADER));
		b = ::GlobalUnlock(hImage);
		/*win98下禁止使用
		if(!b)
		return IMAGE_ERR_UNLOCK;*/
		break;
	case 1:
		err = CreateObject(dwSize + 14);
		if( err != IMAGE_OK)
			return err;
		
		memset(&bfh, 0, sizeof(bfh));
		bfh.bfType = 'MB';
		bfh.bfOffBits = 54;
		bfh.bfSize = dwSize + 14;

		p = (PBYTE)::GlobalLock(hImage);
		if(!p)
			return IMAGE_ERR_LOCK;
		memcpy(p, &bfh, sizeof(bfh));
		memcpy(p + 14, pImage, dwSize);

		//set dib
		memcpy(&m_bih, pImage, sizeof(BITMAPINFOHEADER));
		
		b = ::GlobalUnlock(hImage);
		/*win98下禁止使用
		if(!b)
		return IMAGE_ERR_UNLOCK;*/
		break;
	default:
		if (m_bih.biWidth == 0 )
			return IMAGE_ERR_INFOHEADER;
		err = CreateObject(dwSize + 54);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久9999| 久久不见久久见中文字幕免费| 国产性天天综合网| 精品国产乱码久久| 日韩欧美在线1卡| 日韩视频免费观看高清完整版| 欧美精品一二三| 日韩一区二区精品葵司在线| 日韩久久久精品| 久久久久久99久久久精品网站| 国产日韩视频一区二区三区| 国产精品久久久久四虎| 亚洲精品国产第一综合99久久| 亚洲自拍与偷拍| 三级亚洲高清视频| 精品中文字幕一区二区小辣椒| 国产高清成人在线| 91亚洲精品久久久蜜桃网站 | 精品视频一区 二区 三区| 欧美视频一二三区| 日韩美一区二区三区| 国产欧美日本一区视频| 亚洲美女少妇撒尿| 天天综合网 天天综合色| 美女www一区二区| 国产精品一区二区在线看| 99久久er热在这里只有精品15| 91福利精品第一导航| 正在播放亚洲一区| 久久亚洲精精品中文字幕早川悠里 | 欧美肥妇free| 精品理论电影在线观看 | 亚洲精品视频在线观看网站| 亚洲国产美女搞黄色| 免费在线视频一区| 成人听书哪个软件好| 欧美在线综合视频| 日韩免费福利电影在线观看| 国产精品电影院| 首页国产欧美久久| 成人性生交大合| 欧美人与禽zozo性伦| 久久久一区二区| 亚洲国产美女搞黄色| 国产美女主播视频一区| 91成人免费网站| 久久人人爽爽爽人久久久| 亚洲精品成a人| 美国十次综合导航| 91免费精品国自产拍在线不卡| 6080日韩午夜伦伦午夜伦| 国产精品久久网站| 久久99精品国产麻豆婷婷| 91社区在线播放| 26uuu国产电影一区二区| 亚洲黄色录像片| 国产成人亚洲综合色影视| 欧美日韩色综合| 国产精品欧美精品| 蜜臀av一级做a爰片久久| 91小视频免费看| 久久人人爽人人爽| 日本一不卡视频| 在线一区二区三区做爰视频网站| 精品国产乱码久久| 日本特黄久久久高潮| 色婷婷久久久综合中文字幕| 国产婷婷色一区二区三区在线| 偷拍一区二区三区| 日本精品视频一区二区三区| 国产亚洲人成网站| 六月丁香婷婷色狠狠久久| 欧美色综合网站| 亚洲欧洲精品天堂一级| 国内国产精品久久| 日韩欧美中文一区二区| 天堂一区二区在线| 在线视频国内一区二区| 综合av第一页| av中文字幕不卡| 国产日产亚洲精品系列| 精品一区二区免费视频| 欧美精品一卡二卡| 香蕉久久夜色精品国产使用方法 | 日韩欧美精品在线| 日日夜夜免费精品| 欧美天天综合网| 亚洲激情综合网| 97久久精品人人做人人爽50路| 国产日韩欧美在线一区| 国内精品伊人久久久久av影院| 4438成人网| 日韩va欧美va亚洲va久久| 欧美人狂配大交3d怪物一区 | 欧洲精品一区二区| 亚洲一区二区三区四区不卡| 在线区一区二视频| 亚洲国产一区二区a毛片| 日本韩国精品在线| 一区二区三区中文字幕电影| 在线视频国内一区二区| 亚洲图片一区二区| 欧美美女一区二区在线观看| 亚洲大型综合色站| 91精品蜜臀在线一区尤物| 日韩电影在线看| 日韩免费观看高清完整版在线观看| 青青草伊人久久| 精品国产人成亚洲区| 国产一区二区三区久久久| 久久久久国产精品麻豆| 国产高清一区日本| 国产精品久久久久天堂| 色婷婷亚洲综合| 亚洲国产一区视频| 日韩欧美美女一区二区三区| 国产在线精品视频| 久久久久久久久伊人| 成人免费视频免费观看| 国产精品盗摄一区二区三区| 91麻豆免费视频| 亚洲va韩国va欧美va| 日韩欧美国产成人一区二区| 国产一二精品视频| 亚洲视频免费在线观看| 色欧美88888久久久久久影院| 亚洲成人黄色影院| 日韩欧美你懂的| 成人伦理片在线| 亚洲一区视频在线| 欧美电影免费观看高清完整版在线观看| 国产乱色国产精品免费视频| 国产精品久久二区二区| 欧美日韩一二区| 国产一区欧美二区| 亚洲黄色录像片| 精品国产免费一区二区三区香蕉| 国产精品影视网| 亚洲中国最大av网站| 日韩精品一区二区三区在线| av在线不卡网| 日韩高清不卡一区| 中文字幕av不卡| 精品视频全国免费看| 国产成人午夜精品影院观看视频| 亚洲免费观看高清完整| 日韩欧美色综合| 色噜噜夜夜夜综合网| 免费观看一级特黄欧美大片| 中文字幕一区二区视频| 欧美一区二区三区视频| 不卡一区中文字幕| 蜜桃视频一区二区三区在线观看| 国产精品日韩成人| 在线播放日韩导航| 成年人午夜久久久| 裸体一区二区三区| 亚洲综合色成人| 久久久久久99精品| 宅男噜噜噜66一区二区66| av激情亚洲男人天堂| 激情五月激情综合网| 亚洲在线一区二区三区| 欧美激情一二三区| 日韩欧美一卡二卡| 精品视频123区在线观看| 不卡在线视频中文字幕| 激情综合色综合久久| 亚洲国产欧美日韩另类综合 | 欧美韩日一区二区三区四区| 在线成人免费视频| 色菇凉天天综合网| 国产成人在线视频网址| 麻豆高清免费国产一区| 亚洲一区视频在线| 国产精品国产馆在线真实露脸| 日韩精品一区二区三区三区免费| 欧美视频自拍偷拍| av中文字幕不卡| 高清国产一区二区三区| 精品一区二区免费| 欧美aⅴ一区二区三区视频| 依依成人精品视频| 综合激情成人伊人| 国产精品久久久久久久久果冻传媒| 337p日本欧洲亚洲大胆色噜噜| 欧美剧情片在线观看| 欧美专区亚洲专区| 色素色在线综合| 色综合色综合色综合| 99久久免费精品| voyeur盗摄精品| 岛国一区二区三区| 国产精品 欧美精品| 韩国v欧美v日本v亚洲v| 另类小说综合欧美亚洲| 另类综合日韩欧美亚洲| 久久精品国产99国产| 蜜臀久久久久久久| 久久成人羞羞网站|