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

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

?? imageprocessingview.cpp

?? 《VC數字圖處理典型算法以及實現》第12章的對應源代碼
?? CPP
字號:
// ImageProcessingView.cpp : implementation of the CImageProcessingView class
//

#include "stdafx.h"
#include "ImageProcessing.h"

#include "ImageProcessingDoc.h"
#include "ImageProcessingView.h"
#include  "GlobalApi.h"
#include  "DlgCoding.h"
#include <complex>
using namespace std;


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

/////////////////////////////////////////////////////////////////////////////
// CImageProcessingView

IMPLEMENT_DYNCREATE(CImageProcessingView, CScrollView)

BEGIN_MESSAGE_MAP(CImageProcessingView, CScrollView)
	//{{AFX_MSG_MAP(CImageProcessingView)
	ON_COMMAND(ID_CODING_SHANFINO, OnCodingShanfino)
	ON_COMMAND(ID_CODING_ARITH, OnCodingArith)
	ON_COMMAND(ID_CODING_BITPLANE, OnCodingBitplane)
	ON_COMMAND(ID_CODING_HUFFMAN, OnCodingHuffman)
	ON_COMMAND(ID_CODING_LOADIMG, OnCodingLoadimg)
	ON_COMMAND(ID_CODING_WRITEIMG, OnCodingWriteimg)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CScrollView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CScrollView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CScrollView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CImageProcessingView construction/destruction

CImageProcessingView::CImageProcessingView()
{
	// 為小波變換設置的參數
	// 臨時存放小波變換系數內存
	m_pDbImage = NULL;	
	
	// 設置當前層數
	m_nDWTCurDepth = 0;

	// 設置小波基緊支集長度
	m_nSupp = 1;
}

CImageProcessingView::~CImageProcessingView()
{
	// 釋放已分配內存
	if(m_pDbImage){
		delete[]m_pDbImage;
		m_pDbImage = NULL;
	}
}

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

	return CScrollView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CImageProcessingView drawing

void CImageProcessingView::OnDraw(CDC* pDC)
{
	CImageProcessingDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	
	CSize sizeDibDisplay;		
	

	
	if(!pDoc->m_pDibInit->IsEmpty()){	
		sizeDibDisplay = pDoc->m_pDibInit->GetDimensions();
		pDoc->m_pDibInit->Draw(pDC,CPoint(0,0),sizeDibDisplay);	
	}	

}

void CImageProcessingView::OnInitialUpdate()
{
	CScrollView::OnInitialUpdate();

	CImageProcessingDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	
	CSize sizeTotal = pDoc->m_pDibInit->GetDimensions();
	SetScrollSizes(MM_TEXT, sizeTotal);

	GetParentFrame()->RecalcLayout();
	ResizeParentToFit();

}

/////////////////////////////////////////////////////////////////////////////
// CImageProcessingView printing

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CImageProcessingView diagnostics

#ifdef _DEBUG
void CImageProcessingView::AssertValid() const
{
	CScrollView::AssertValid();
}

void CImageProcessingView::Dump(CDumpContext& dc) const
{
	CScrollView::Dump(dc);
}

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

/////////////////////////////////////////////////////////////////////////////
// CImageProcessingView message handlers






void CImageProcessingView::OnCodingHuffman() 
{
	// 哈夫曼編碼表
	
	// 獲取文檔
	CImageProcessingDoc * pDoc = GetDocument();
	
	// 指向源圖象象素的指針
	unsigned char *	lpSrc;
		
	// 圖象的高度和寬度
	LONG	lHeight;
	LONG	lWidth;
	
	// 圖象每行的字節數
	LONG	lLineBytes;
	
	// 圖象象素總數
	LONG	lCountSum;
	
	// 循環變量
	LONG	i;
	LONG	j;
	
	// 數組指針用來保存各個灰度值出現概率
	double * dProba;
	
	// 當前圖象顏色數目
	int		nColorNum;

	//  獲得圖象CDib類的指針
	CDib * pDib = pDoc->m_pDibInit;
			
	//圖象數據的指針
	LPBYTE  lpDIBBits = pDib->m_lpImage;

	// 頭文件信息
	LPBITMAPINFOHEADER lpBMIH=pDib->m_lpBMIH;

	// 判斷是否是8-bpp位圖(只處理8-bpp位圖的霍夫曼編碼)
	if (lpBMIH->biBitCount != 8)
	{
		// 提示用戶
		MessageBox("目前只支持256色位圖的霍夫曼編碼!", "系統提示" ,
			MB_ICONINFORMATION | MB_OK);
						
		// 返回
		return;
	}
	
	// 更改光標形狀
	BeginWaitCursor();
	
	/********************************************************************
	   開始計算各個灰度級出現的概率	

	   如果需要對指定的序列進行哈夫曼編碼,
	   只要將這一步改成給各個灰度級概率賦值即可
	**********************************************************************
	*/
	
	//  由頭文件信息得到圖象的比特數,從而得到顏色信息
	nColorNum = (int)pow(2,lpBMIH->biBitCount);

	// 分配內存
	dProba = new double[nColorNum];
	
	//得到圖象的寬度和高度
	CSize   SizeDim;
	SizeDim = pDib->GetDimensions();
	lWidth = SizeDim.cx;
	lHeight = SizeDim.cy;

	// 計算圖象象素總數
	lCountSum = lHeight * lWidth;
	
	//得到實際的Dib圖象存儲大小
	CSize   SizeRealDim;
	SizeRealDim = pDib->GetDibSaveDim();

	// 計算圖象每行的字節數
	lLineBytes = SizeRealDim.cx;
	
	// 賦零值
	for (i = 0; i < nColorNum; i ++)
	{
		dProba[i] = 0.0;
	}
	
	// 計算各個灰度值的計數
	for (i = 0; i < lHeight; i ++)
	{
		for (j = 0; j < lWidth; j ++)
		{
			// 指向圖象指針
			lpSrc = lpDIBBits + lLineBytes * i + j;
			
			// 計數加1
			dProba[*(lpSrc)] = dProba[*(lpSrc)] + 1;
		}
	}
		
	
	// 計算各個灰度值出現的概率
	for (i = 0; i < nColorNum; i ++)
	{
		dProba[i] = dProba[i] / (FLOAT)lCountSum;
	}
	
	/***************************************************
	 構建霍夫曼編碼的碼表
	 并用對話框顯示霍夫曼碼表
	****************************************************/
	
	// 創建對話框
	CDlgHuffman dlgCoding;
	
	// 初始化變量值
	dlgCoding.dProba = dProba;
	dlgCoding.nColorNum = nColorNum;
	
	// 顯示對話框
	dlgCoding.DoModal();
		
	// 恢復光標
	EndWaitCursor();
	
}

void CImageProcessingView::OnCodingShanfino() 
{
	// 香農-弗諾編碼表
	
	// 獲取文檔
	CImageProcessingDoc * pDoc = GetDocument();
	
	// 指向源圖象象素的指針
	unsigned char *	lpSrc;
		
	// 圖象的高度
	LONG	lHeight;
	LONG	lWidth;
	
	// 圖象每行的字節數
	LONG	lLineBytes;
	
	// 獲取當前DIB顏色數目
	int		nColorNum;
	
	// 圖象象素總數
	LONG	lCountSum;
	
	// 循環變量
	LONG	i;
	LONG	j;
	
	// 保存各個灰度值出現概率的數組指針
	double * dProba;	

	//  獲得圖象CDib類的指針
	CDib * pDib = pDoc->m_pDibInit;
			
	//圖象數據的指針
	LPBYTE  lpDIBBits = pDib->m_lpImage;

	// 頭文件信息
	LPBITMAPINFOHEADER lpBMIH=pDib->m_lpBMIH;

	// 判斷是否是8-bpp位圖(這里為了方便,只處理8-bpp位圖的香農-費諾編碼)
	if (lpBMIH->biBitCount != 8)
	{
		// 提示用戶
		MessageBox("目前只支持256色位圖的香農-費諾編碼!", "系統提示" ,
			MB_ICONINFORMATION | MB_OK);
						
		// 返回
		return;
	}
	
	// 更改光標形狀
	BeginWaitCursor();
	
	/******************************************************************************
	// 開始計算各個灰度級出現的概率	
	//
	// 如果需要對指定的序列進行香農-弗諾編碼,
	//只要將這一步改成給各個灰度級概率賦值即可
	*****************************************************************************
	*/
	//  灰度值總數的計算
	nColorNum = (int)pow(2,lpBMIH->biBitCount);

	// 分配內存
	dProba = new double[nColorNum];
	
	//得到圖象的寬度和高度
	CSize   SizeDim;
	SizeDim = pDib->GetDimensions();
	lWidth = SizeDim.cx;
	lHeight = SizeDim.cy;

	// 計算圖象象素總數
	lCountSum = lHeight * lWidth;
	
	//得到實際的Dib圖象存儲大小
	CSize   SizeRealDim;
	SizeRealDim = pDib->GetDibSaveDim();

	// 計算圖象每行的字節數
	lLineBytes = SizeRealDim.cx;

	// 計算圖象象素總數
	lCountSum = lHeight * lWidth;
	
	// 重置計數為0
	for (i = 0; i < nColorNum; i ++)
	{
		dProba[i] = 0.0;
	}
	
	// 計算各個灰度值的計數(對于非256色位圖,此處給數組dProba賦值方法將不同)
	for (i = 0; i < lHeight; i ++)
	{
		for (j = 0; j < lWidth; j ++)
		{
			// 指向圖象指針
			lpSrc = lpDIBBits + lLineBytes * i + j;
			
			// 計數加1
			dProba[*(lpSrc)] = dProba[*(lpSrc)]+ 1;
		}
	}
	
	
	// 計算各個灰度值出現的概率
	for (i = 0; i < nColorNum; i ++)
	{
		dProba[i] /= (double)lCountSum;
	}
	
	/***************************************************
	 構建香農-費諾編碼的碼表
	 并用對話框顯示香農-費諾碼表
	****************************************************/	
	
	// 創建對話框
	CDlgShannon dlgPara;
	
	// 初始化變量值
	dlgPara.m_dProba = dProba;
	dlgPara.m_nColorNum = nColorNum;
	
	// 顯示對話框
	dlgPara.DoModal();

	//釋放內存
	delete dProba;
		
	// 恢復光標
	EndWaitCursor();
}

void CImageProcessingView::OnCodingArith() 
{
	CDlgArith dlgCoding;
	
	// 顯示對話框
	dlgCoding.DoModal();
	
}

void CImageProcessingView::OnCodingBitplane() 
{
	// 創建對話框
	CDlgBitPlane dlgCoding;	
	
	// 顯示對話框
	dlgCoding.DoModal();	
	
	BYTE bBitNum = dlgCoding.m_BItNumber;

	// 獲取文檔
	CImageProcessingDoc * pDoc = GetDocument();
		
	//  獲得圖象CDib類的指針
	CDib * pDib = pDoc->m_pDibInit;
	
	// 頭文件信息
	LPBITMAPINFOHEADER lpBMIH=pDib->m_lpBMIH;

	// 判斷是否是8-bpp位圖(這里為了方便,只處理8-bpp位圖的位平面分解)
	if (lpBMIH->biBitCount != 8)
	{
		// 提示用戶
		MessageBox("目前只支持256色位圖的位平面分解!", "系統提示" ,
			MB_ICONINFORMATION | MB_OK);
						
		// 返回
		return;
	}
	DIBBITPLANE(pDib,bBitNum);

	// 設置臟標記
	pDoc->SetModifiedFlag(TRUE);
		
	// 更新視圖
	pDoc->UpdateAllViews(NULL);
	
}

void CImageProcessingView::OnCodingWriteimg() 
{
	// 對當前圖象進行DPCM編碼(存為IMG格式文件)
	
	// 獲取文檔
	CImageProcessingDoc * pDoc = GetDocument();
		
	//  獲得圖象CDib類的指針
	CDib * pDib = pDoc->m_pDibInit;
			
	//圖象數據的指針
	LPBYTE  lpDIBBits = pDib->m_lpImage;

	// 頭文件信息
	LPBITMAPINFOHEADER lpBMIH=pDib->m_lpBMIH;

	// 判斷是否是8-bpp位圖(處理8-bpp位圖的DPCM編碼)
	if (lpBMIH->biBitCount != 8)
	{
		// 提示用戶
		MessageBox("目前只支持256色位圖的DPCM編碼!", "系統提示" ,
			MB_ICONINFORMATION | MB_OK);
						
		// 返回
		return;
	}
	
	// 更改光標形狀
	BeginWaitCursor();
	
	// 文件保存路徑
	CString strFilePath;
	
	// 獲取原始文件名
	strFilePath = pDoc->GetPathName();
	
	// 更改后綴為IMG
	if (strFilePath.Right(4).CompareNoCase(".BMP") == 0)
	{	
		strFilePath = strFilePath.Left(strFilePath.GetLength()-3) + "IMG";
	}
	else
	{
		strFilePath += ".IMG";
	}

	// 創建SaveAs對話框
	CFileDialog dlg(FALSE, "IMG", strFilePath, 
					OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, 
		            "IMG圖象文件 (*.IMG) | *.IMG|所有文件 (*.*) | *.*||", NULL);
	
	// 提示用戶選擇保存的路徑
	if (dlg.DoModal() != IDOK)
	{
		// 恢復光標
		EndWaitCursor();
	
		return;
	}
	
	// 獲取用戶指定的文件路徑
	strFilePath = dlg.GetPathName();
	
	// CFile和CFileException對象
	CFile file;
	CFileException fe;
	
	// 嘗試創建指定的IMG文件
	if (!file.Open(strFilePath, CFile::modeCreate |
	  CFile::modeReadWrite | CFile::shareExclusive, &fe))
	{
		MessageBox("打開指定IMG文件時失敗!", "系統提示" , 
			MB_ICONINFORMATION | MB_OK);
	
		return;
	}
	
	// 調用WRITE2IMG()函數將當前的DIB保存為IMG文件
	if (::WRITE2IMG(pDib, file))
	{
		MessageBox("成功保存為IMG文件!", "系統提示" , 
			MB_ICONINFORMATION | MB_OK);
	}
	else
	{
		MessageBox("保存為IMG文件失敗!", "系統提示" , 
			MB_ICONINFORMATION | MB_OK);
	}	
		
	// 恢復光標
	EndWaitCursor();
	
}


void CImageProcessingView::OnCodingLoadimg() 
{
	// 讀入IMG文件
	
	// 獲取文檔
	CImageProcessingDoc * pDoc = GetDocument();
		
	//  獲得圖象CDib類的指針
	CDib * pDib = pDoc->m_pDibInit;

	// 文件路徑
	CString strFilePath;
	
	// 創建Open對話框
	CFileDialog dlg(TRUE, "PCX", NULL,
					OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, 
					"IMG圖象文件 (*.PCX) | *.IMG|所有文件 (*.*) | *.*||", NULL);
	
	// 提示用戶選擇保存的路徑
	if (dlg.DoModal() != IDOK)
	{
		// 返回
		return;
	}
	
	// 獲取用戶指定的文件路徑
	strFilePath = dlg.GetPathName();
	
	// CFile和CFileException對象
	CFile file;
	CFileException fe;
	
	// 嘗試打開指定的PCX文件
	if (!file.Open(strFilePath, CFile::modeRead | CFile::shareDenyWrite, &fe))
	{
		// 提示用戶
		MessageBox("打開指定PCX文件時失敗!", "系統提示" , 
			MB_ICONINFORMATION | MB_OK);
		
		// 返回
		return;
	}
	
	// 更改光標形狀
	BeginWaitCursor();

	// 調用LOADIMG()函數讀取指定的IMG文件
	BOOL Succ = LOADIMG(pDib, file);

	if (Succ == TRUE)
	{
		// 提示用戶
		MessageBox("成功讀取IMG文件!", "系統提示" , 
			MB_ICONINFORMATION | MB_OK);
		
	}
	else
	{
		// 提示用戶
		MessageBox("讀取IMG文件失敗!", "系統提示" , 
			MB_ICONINFORMATION | MB_OK);
	}

	// 更新視圖
	pDoc->UpdateAllViews(NULL);
	
	// 恢復光標
	EndWaitCursor();
	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产一二三| 色噜噜偷拍精品综合在线| 在线播放亚洲一区| 天使萌一区二区三区免费观看| 欧美三电影在线| 秋霞av亚洲一区二区三| 精品国产三级电影在线观看| 国产成人综合亚洲网站| 国产精品福利影院| 欧美色中文字幕| 麻豆国产欧美一区二区三区| 国产情人综合久久777777| 9i在线看片成人免费| 午夜视频一区二区| wwwwww.欧美系列| 成人高清免费观看| 亚洲成人动漫在线免费观看| 精品久久久久香蕉网| 成人晚上爱看视频| 亚洲成a人在线观看| 久久精品视频免费| 欧洲激情一区二区| 激情综合网av| 又紧又大又爽精品一区二区| 欧美日韩在线免费视频| 国产一区二区三区观看| 亚洲欧美视频在线观看视频| 欧美一区二区三区免费视频| 99热99精品| 欧美aaa在线| 亚洲视频电影在线| 精品久久一区二区| 欧美综合久久久| 国产成人精品一区二区三区网站观看| 亚洲乱码精品一二三四区日韩在线| 69p69国产精品| 波波电影院一区二区三区| 日韩电影在线一区二区| 18成人在线视频| 精品久久久久久综合日本欧美| 一本大道久久精品懂色aⅴ| 蜜臀av亚洲一区中文字幕| 亚洲日本在线看| 久久理论电影网| 欧美精品国产精品| 99久久久久久99| 国产麻豆视频精品| 日韩av一区二| 亚洲一区二区三区四区不卡| 欧美国产一区视频在线观看| 欧美一区二区视频在线观看2022| 91免费国产在线| 国产精品一卡二卡| 裸体一区二区三区| 亚洲成人7777| 亚洲精品视频在线观看免费 | 日韩av午夜在线观看| 亚洲美女一区二区三区| 欧美激情综合网| 日韩精品一区二区三区swag| 欧美三级日韩在线| 欧美自拍偷拍一区| 91成人免费网站| a在线播放不卡| 成人激情校园春色| 国产成人亚洲综合色影视| 国产中文字幕精品| 国内不卡的二区三区中文字幕| 日韩va亚洲va欧美va久久| 婷婷久久综合九色综合绿巨人| 亚洲精品国产精华液| 亚洲欧美日韩系列| 亚洲日本在线看| 亚洲女同一区二区| 亚洲精品久久久蜜桃| 一二三四区精品视频| 夜夜嗨av一区二区三区网页| 亚洲人成在线播放网站岛国| 亚洲人成网站在线| 一区二区高清在线| 亚洲成人在线免费| 日韩精品亚洲一区| 久久99久久久欧美国产| 久久99精品一区二区三区| 国产九色sp调教91| 懂色av一区二区在线播放| a亚洲天堂av| 在线观看不卡视频| 日韩欧美中文字幕公布| 久久久久久麻豆| 国产精品久久久爽爽爽麻豆色哟哟 | 国产欧美日韩中文久久| 国产精品色在线| 亚洲欧美激情一区二区| 亚洲国产va精品久久久不卡综合| 亚洲gay无套男同| 久久99热99| 不卡av免费在线观看| 91国内精品野花午夜精品 | 日韩精品影音先锋| 久久九九久久九九| 亚洲女同女同女同女同女同69| 亚洲大片免费看| 国产真实乱子伦精品视频| 大尺度一区二区| 欧美日本免费一区二区三区| 精品少妇一区二区三区日产乱码 | 99精品视频一区二区| 欧美日韩精品免费观看视频| 欧美α欧美αv大片| 中文字幕中文字幕一区二区| 亚洲国产成人91porn| 国产一区二区三区久久久| 在线观看91视频| 久久综合国产精品| 亚洲韩国一区二区三区| 国产九色精品成人porny| 精品视频一区三区九区| 国产夜色精品一区二区av| 亚洲已满18点击进入久久| 国产精品亚洲一区二区三区在线| 一本色道久久综合亚洲aⅴ蜜桃| 制服丝袜成人动漫| 中文字幕在线不卡国产视频| 蜜臀av性久久久久av蜜臀妖精| 9i看片成人免费高清| 欧美刺激午夜性久久久久久久| 国产精品进线69影院| 久久99久国产精品黄毛片色诱| 91福利国产成人精品照片| 久久伊99综合婷婷久久伊| 午夜精品福利一区二区三区蜜桃| 成人网在线免费视频| 亚洲精品一线二线三线| 首页国产欧美久久| 91片在线免费观看| 日本一区二区动态图| 麻豆91免费看| 欧美人动与zoxxxx乱| 一区二区三区在线不卡| 成人午夜视频网站| 久久夜色精品国产欧美乱极品| 午夜欧美一区二区三区在线播放| 91年精品国产| 亚洲视频中文字幕| 成人黄色片在线观看| 久久久久九九视频| 久久99国产精品久久99| 欧美一卡二卡在线观看| 亚洲第一主播视频| 欧美视频精品在线观看| 一区二区国产盗摄色噜噜| 91在线你懂得| 亚洲视频免费在线| 91色综合久久久久婷婷| 亚洲欧洲国产日本综合| 成人av资源站| 亚洲国产精品精华液2区45| 国产成人福利片| 久久精品视频一区二区三区| 国产伦精品一区二区三区免费| 日韩欧美色综合网站| 蜜臀av一级做a爰片久久| 欧美一区二区精品| 久久电影网站中文字幕| 精品国产乱码久久久久久1区2区| 久久国产精品99精品国产| 精品国产乱码久久久久久蜜臀| 美女任你摸久久| 日韩欧美激情在线| 国内成+人亚洲+欧美+综合在线| 久久这里只精品最新地址| 国产在线不卡一区| 国产欧美日本一区二区三区| 国产成人激情av| 亚洲人成在线观看一区二区| 91国产成人在线| 午夜精品一区二区三区免费视频 | 91福利在线看| 日本欧美在线看| 欧美精品一区二区在线播放| 国产伦理精品不卡| 国产精品久99| 欧美日韩国产欧美日美国产精品| 婷婷一区二区三区| 日韩精品自拍偷拍| 成人免费高清视频| 一区二区三区在线播| 欧美一级夜夜爽| 国产精品18久久久久久久网站| 国产精品乱码人人做人人爱| 91在线免费视频观看| 水野朝阳av一区二区三区| 精品久久久久久久久久久久包黑料| 国产sm精品调教视频网站| 伊人夜夜躁av伊人久久| 日韩一级大片在线| 成人三级伦理片| 午夜精品免费在线| 国产日本欧美一区二区|