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

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

?? embed.cpp

?? 一個(gè)實(shí)用的水印加密解密程序
?? CPP
字號(hào):
// Embed.cpp : implementation file
//

#include "stdafx.h"
#include "WaterMark.h"
#include "Embed.h"
#include "EncryptImage.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CEmbed dialog


CEmbed::CEmbed(CWnd* pParent /*=NULL*/)
	: CDialog(CEmbed::IDD, pParent)
{
	//{{AFX_DATA_INIT(CEmbed)
	m_encrypt = -1;
	//}}AFX_DATA_INIT
	show[0]=show[1]=show[2]=FALSE;
	m_hwnd[0]=m_hwnd[1]=m_hwnd[3]=NULL;
	hSrcDC[0]=hSrcDC[1]=hSrcDC[2]=hDesDC[0]=hDesDC[1]=hDesDC[2]=NULL;
	m_dib = new CDib();
	m_dib1=new CDib();
	ImageHeight=ImageWidth=0;
	num=0;
	flag=FALSE;

}


void CEmbed::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CEmbed)
	DDX_Radio(pDX, IDC_RADIO1, m_encrypt);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CEmbed, CDialog)
	//{{AFX_MSG_MAP(CEmbed)
	ON_BN_CLICKED(IDC_BUTTON1, OnOpenImage)
	ON_WM_TIMER()
	ON_BN_CLICKED(IDC_BUTTON2, OnOpenWaterImage)
	ON_BN_CLICKED(IDC_BUTTON4, OnClearAll)
	ON_BN_CLICKED(IDC_BUTTON3, OnEmbedWaterImage)
	ON_BN_CLICKED(IDC_BUTTON5, OnSaveWaterMarking)
	ON_BN_CLICKED(IDC_RADIO1, OnSecret)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CEmbed message handlers

void CEmbed::OnOpenImage() 
{
	// TODO: Add your control notification handler code here
	CFileDialog dlg(TRUE, "", NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT, "(*.bmp)|*.bmp|所有文件(*.*)|*.*||",AfxGetMainWnd());
	//讀取圖象的文件名CString Imagefilename;
	if(dlg.DoModal()==IDOK)
	{
	//POSITION pos = dlg.GetStartPosition();
//	ImageFilename = dlg.GetNextPathName(pos);
	ImageFilename=dlg.GetPathName();
	GetImageData();
    if(m_hwnd[0]!=NULL)
	  m_hwnd[0]=NULL;
  if(hSrcDC[0]!=NULL)
	  hSrcDC[0]=NULL;
  if(hDesDC[0]!=NULL)
	  hDesDC[0]=NULL;
 m_hwnd[0]=GetDlgItem(IDC_STATIC1);
  hDesDC[0]=m_hwnd[0]->GetDC()->m_hDC;
  hSrcDC[0]=CreateCompatibleDC(hDesDC[0]);

hBitmap[0]=(HBITMAP)LoadImage(AfxGetInstanceHandle(),ImageFilename,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
  GetObject(hBitmap[0],sizeof(BITMAP),&bm[0]);
  SelectObject(hSrcDC[0],hBitmap[0]);
  m_hwnd[0]->GetClientRect(&rect[0]);
  ::SetStretchBltMode(hDesDC[0],COLORONCOLOR);
  ::StretchBlt(hDesDC[0],rect[0].left,rect[0].top,rect[0].right,rect[0].bottom,hSrcDC[0],0,0,bm[0].bmWidth,bm[0].bmHeight,+SRCCOPY);
   show[0]=TRUE;
   SetTimer(NULL,50,0);
   GetDlgItem(IDC_BUTTON2)->EnableWindow(TRUE);
   //************************************************
   
 	CString s,s0,s1;
	biBitCount=m_dib->GetBiBitCount();
    m_edit1=new CEdit;
	s.Format("%2d",ImageHeight);
	s1.Format("%2d",ImageWidth);
	s0.Format("%d",biBitCount);
	str1="宿主圖象:"+s0+"位H×W:"+s+"X"+s1;

   r.left=rect[0].right+20;
   r.right=r.left+200;
   r.top=rect[0].bottom+30;
   r.bottom=r.top+20;
  ShowText(str1,r,m_edit1);

	}
}

void CEmbed::GetImageData()
{
	int i,j;	
	if(m_ImageData !=NULL)
			for(i=0; i<ImageHeight; i++)
				delete [] m_ImageData[i];			
	if(ImageFilename.GetLength()==0)
	{
		MessageBox("請(qǐng)打開文件!");
		return ;
	}	
	m_dib->Open(ImageFilename);
	ImageWidth = m_dib->GetWidth();
	ImageHeight = m_dib->GetHeight();
	biBitCount = m_dib->GetBiBitCount(); 

	BYTE  *Imagedata;
	Imagedata =(BYTE *) m_dib->m_pDibBits;
	int byteBitCount=m_dib->GetBiBitCount()/8;

    m_ImageData =new RGBQUAD*[ImageHeight];
	
	for (int m=0;m<ImageHeight;m++)
    m_ImageData[m]=new RGBQUAD [ImageWidth];
	
	int count = 0;
	int num = 0;
	for(i=ImageHeight-1; i>=0; i--)
	{
		for(j=0; j<ImageWidth; j++)
		{
		m_ImageData[i][j].rgbBlue=Imagedata[count++];
		m_ImageData[i][j].rgbGreen=Imagedata[count++];
		m_ImageData[i][j].rgbRed=Imagedata[count++];
		m_ImageData[i][j].rgbReserved=0;
			count += byteBitCount-3;
			num+=1;
		}
		count += (4-(ImageWidth*byteBitCount)%4)%4;		
	}

}


void CEmbed::OnOpenWaterImage() 
{
	// TODO: Add your control notification handler code here
		CFileDialog dlg1(TRUE, "", NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT, "(*.bmp)|*.bmp|所有文件(*.*)|*.*||",AfxGetMainWnd());
	//讀取圖象的文件名CString Imagefilename;
	if(dlg1.DoModal()==IDOK)
	{
	
    if(m_hwnd[1]!=NULL)
	  m_hwnd[1]=NULL;
  if(hSrcDC[1]!=NULL)
	  hSrcDC[1]=NULL;
  if(hDesDC[1]!=NULL)
	  hDesDC[1]=NULL;
  m_hwnd[1]=GetDlgItem(IDC_STATIC2);
  hDesDC[1]=m_hwnd[1]->GetDC()->m_hDC;
  hSrcDC[1]=CreateCompatibleDC(hDesDC[1]);
  WaterImageFilename=dlg1.GetPathName();
  hBitmap[1]=(HBITMAP)LoadImage(AfxGetInstanceHandle(),WaterImageFilename,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);
  GetObject(hBitmap[1],sizeof(BITMAP),&bm[1]);
  SelectObject(hSrcDC[1],hBitmap[1]);
  m_hwnd[1]->GetClientRect(&rect[1]);
  ::SetStretchBltMode(hDesDC[1],COLORONCOLOR);
  ::StretchBlt(hDesDC[1],rect[1].left,rect[1].top,rect[1].right,rect[1].bottom,hSrcDC[1],0,0,bm[1].bmWidth,bm[1].bmHeight,+SRCCOPY);
   show[1]=TRUE;
   //**********************************************************顯示水印圖像的位和長(zhǎng)寬
   	CString s,s0,s1;
    m_edit2=new CEdit;
	s.Format("%2d",bm[1].bmHeight);
	s1.Format("%2d",bm[1].bmWidth);
	s0.Format("%d",bm[1].bmBitsPixel);
	str2="水印圖象:"+s0+"位H×W:"+s+"X"+s1;
    r1.left=rect[0].right+18;
    r1.right=r.left+200;
    r1.top=r.bottom+10;
    r1.bottom=r1.top+20;
    ShowText(str2,r1,m_edit2);
	//****************************************
  SetTimer(NULL,50,0);
  if(hDesDC[0]!=NULL)
  {
   if(bm[0].bmHeight<bm[1].bmHeight||bm[0].bmWidth<bm[1].bmWidth)
   {
	   MessageBox("水印圖像過大,請(qǐng)更換較小的水印圖像!","錯(cuò)誤",MB_OK);
   }
   else
   {	 
  //  POSITION pos = dlg1.GetStartPosition();
  // WaterImageFilename = dlg1.GetNextPathName(pos);
	GetWaterImageData();
    GetDlgItem(IDC_BUTTON3)->EnableWindow(TRUE);	
  }
  }
	}
}

void CEmbed::GetWaterImageData()
{
	int i,j;	
	if(m_WaterImageData !=NULL)
			for(i=0; i<WaterImageHeight; i++)
				delete [] m_WaterImageData[i];			
	if(WaterImageFilename.GetLength()==0)
	{
		MessageBox("請(qǐng)打開文件!");
		return ;
	}

	m_dib1->Open(WaterImageFilename);
	
	WaterImageWidth = m_dib1->GetWidth();
	WaterImageHeight = m_dib1->GetHeight();
	biBitCount1 = m_dib1->GetBiBitCount(); 

	BYTE  *WaterImagedata;
	WaterImagedata =(BYTE *) m_dib1->m_pDibBits;
	int byteBitCount=m_dib1->GetBiBitCount()/8;

    m_WaterImageData =new RGBQUAD*[WaterImageHeight];
	for (int m=0;m<WaterImageHeight;m++)
    m_WaterImageData[m]=new RGBQUAD [WaterImageWidth];
	
	int count = 0;

		
	for(i=WaterImageHeight-1; i>=0; i--)
	{
		for(j=0; j<WaterImageWidth; j++)
		{
		m_WaterImageData[i][j].rgbBlue=WaterImagedata[count++];
		m_WaterImageData[i][j].rgbGreen=WaterImagedata[count++];
		m_WaterImageData[i][j].rgbRed=WaterImagedata[count++];
		m_WaterImageData[i][j].rgbReserved=0;
			count += byteBitCount-3;
			num+=1;//記錄沒有被0填充的像素個(gè)數(shù)
		}
		count += (4-(WaterImageWidth*byteBitCount)%4)%4;		
	}
	
}
void CEmbed::ShowText(CString s,RECT re,CEdit *edit)
{
	edit=new CEdit;
	edit->Create(ES_CENTER|WS_VISIBLE|ES_READONLY,re,this,1);
	CFont *m_font=new CFont;
	m_font->CreateFont(14,0,0,0,FW_SEMIBOLD,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH&FF_SWISS,"Arial");
	edit->SetFont(m_font,TRUE);
	edit->SetWindowText(s);
}
void CEmbed::OnClearAll() 
{
	// TODO: Add your control notification handler code here
	ImageHeight=ImageWidth=biBitCount=0;
	bm[1].bmHeight=bm[1].bmWidth=bm[1].bmBitsPixel=0;
	str1="宿主圖象:0位H×W:0X0";
	str2="水印圖像:0位H×W:0X0";
	ShowText(str1,r,m_edit2);
	ShowText(str2,r1,m_edit2);
	hDesDC[0]=NULL;
    hDesDC[1]=NULL;
    ::DeleteObject(hDesDC[0]);
	::DeleteObject(hDesDC[1]);
	a11=0;
	a12=0;
	a21=0;
	a22=0;
	T=0;
	N=0;
	flag=FALSE;
	m_encrypt=-1;
	 GetDlgItem(IDC_BUTTON2)->EnableWindow(FALSE);
	 GetDlgItem(IDC_BUTTON3)->EnableWindow(FALSE);
     GetDlgItem(IDC_BUTTON5)->EnableWindow(FALSE);
	UpdateData(FALSE);
	Invalidate();

}

void CEmbed::OnEmbedWaterImage() 
{
	// TODO: Add your control notification handler code here

	if(biBitCount<biBitCount1)
	{
		MessageBox("請(qǐng)更換較小位數(shù)的水印圖像");
		return;
	}
	RGBQUAD *WaterCopyData;//copy waterimagedata  to this arry;
	WaterCopyData=new RGBQUAD [WaterImageHeight*WaterImageWidth];
    int i,j;
	BYTE r,g,b;
 m_WaterEmbedData=new RGBQUAD*[ImageHeight];
 for(int n=0;n<ImageHeight;n++)
	 m_WaterEmbedData[n]=new RGBQUAD [ImageWidth];
 for(i=0;i<ImageHeight;i++)
	 for(j=0;j<ImageWidth;j++)
		 m_WaterEmbedData[i][j]=m_ImageData[i][j];

 if(flag==TRUE)
{
	Encrypt();
}
for(i=0;i<WaterImageHeight;i++)
     for(j=0;j<WaterImageWidth;j++)
		 WaterCopyData[WaterImageHeight*i+j]=m_WaterImageData[i][j];


 for(i=0;i<WaterImageHeight;i++)
	 for(j=0;j<WaterImageWidth;j++)
	 {
      r=m_WaterEmbedData[i][j].rgbRed;
	  b=m_WaterEmbedData[i][j].rgbBlue;
	  g=m_WaterEmbedData[i][j].rgbGreen;
	   //將水印圖像灰度轉(zhuǎn)換
	 	BYTE Gray=WaterCopyData[i*WaterImageHeight+j].rgbGreen;
  //BYTE Gray=(BYTE)(0.11*WaterCopyData[i*WaterImageHeight+j].rgbRed+0.59*WaterCopyData[i*WaterImageHeight+j].rgbGreen+0.3*WaterCopyData[i*WaterImageHeight+j].rgbBlue);
      LSB_watermarking(i,j,r,b,Gray);
	 }
CDC *dc=GetDC();
//水印圖像輸出定位
m_hwnd[2]=GetDlgItem(IDC_STATIC3);
m_hwnd[2]->GetClientRect(&rect[2]);
int  StartX=rect[2].left+10;
int  StartY=233;
float p,q;//縮放比例

if(rect[2].right<ImageWidth&&rect[2].bottom<ImageHeight)
{
  p=(float)rect[2].right/ImageWidth;
  q=(float)rect[2].bottom/ImageHeight;
}
else
  q=p=1;
//MessageBox("Error!");

SetImagePixel(dc,StartX,StartY,ImageHeight,ImageWidth,m_WaterEmbedData,p,q);
GetDlgItem(IDC_BUTTON5)->EnableWindow(TRUE);
delete [] WaterCopyData;
 ReleaseDC(dc);


}
 
void  CEmbed::LSB_watermarking(int i,int j,BYTE a,BYTE b,BYTE c)
{
  BYTE value=240;//1111  0000
  BYTE bit[8],bit_value[4],hight,low,d;
  d=c;
  bit_value[0]=1;
  bit_value[1]=2;
  bit_value[2]=4;
  bit_value[3]=8;
  for(int m=0;m<8;m++)//將C的8位分離
  {
	  bit[m]=c&1;
	  c>>=1;
  }
  low=bit[0]*bit_value[0]+bit[1]*bit_value[1]+bit[2]*bit_value[2]+bit[3]*bit_value[3];
  hight=bit[4]*bit_value[0]+bit[5]*bit_value[1]+bit[6]*bit_value[2]+bit[7]*bit_value[3];
  a=a&value;
  a+=hight;
  b=b&value;
  b+=low;

m_WaterEmbedData[i][j].rgbRed=a;
m_WaterEmbedData[i][j].rgbBlue=b;
m_WaterEmbedData[i][j].rgbGreen=d;
}


void CEmbed:: SetImagePixel(CDC *pdc,int x_start,int y_start,int height,int width,RGBQUAD **m_imagedata,float a,float b)
{

for(int i=0;i<height;i++)
  for(int j=0;j<width;j++)
    pdc->SetPixel(x_start+(int)(j*a),y_start+(int)(i*b),RGB(m_imagedata[i][j].rgbRed,m_imagedata[i][j].rgbGreen,m_imagedata[i][j].rgbBlue));


}

void CEmbed::OnSaveWaterMarking() 
{
	// TODO: Add your control notification handler code here
	CFileDialog dlg(FALSE,"未標(biāo)題 bmp","未標(biāo)題 bmp",OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"位圖文件(*.bmp)|*.bmp");
	if(dlg.DoModal()==IDOK)
	{
		CDib *m_saveDib;
		m_saveDib=new CDib;
		m_saveDib=m_dib;
	//	int byteBitCount=3;
	    int byteBitCount=m_dib->GetBiBitCount()/8;
		long Hei=m_saveDib->GetHeight();
		long Wid=m_saveDib->GetWidth();
		int c=0;
		for(int i=Hei-1;i>=0;i--)
		{
			for(int j=0;j<Wid;j++)
			{
				((BYTE *)m_saveDib->m_pDibBits)[c++]=m_WaterEmbedData[i][j].rgbBlue;
                 ((BYTE *)m_saveDib->m_pDibBits)[c++]=m_WaterEmbedData[i][j].rgbGreen;
				 ((BYTE *)m_saveDib->m_pDibBits)[c++]=m_WaterEmbedData[i][j].rgbRed;
				 c+=byteBitCount-3;
			}
			c+=(4-(Wid*byteBitCount)%4)%4;
		}
		CString savename;
		savename=dlg.GetPathName();
		m_saveDib->Save(savename);

	}
	return;
}
void CEmbed::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	
  if (show[0])
		{
			::StretchBlt(hDesDC[0], rect[0].left, rect[0].top, rect[0].right, \
				rect[0].bottom, hSrcDC[0], 0, 0, bm[0].bmWidth, bm[0].bmHeight,+SRCCOPY);
		}
	
		if (show[1])
		{
			::StretchBlt(hDesDC[1], rect[1].left, rect[1].top, rect[1].right, \
				rect[1].bottom, hSrcDC[1], 0, 0, bm[1].bmWidth, bm[1].bmHeight,+SRCCOPY);
		}
		if(show[2])
		{
		::StretchBlt(hDesDC[2], rect[2].left, rect[2].top, rect[2].right, \
				rect[2].bottom, hSrcDC[2], 0, 0, bm[2].bmWidth, bm[2].bmHeight,+SRCCOPY);

		}

	CDialog::OnTimer(nIDEvent);
}

void CEmbed::OnSecret() 
{
	// TODO: Add your control notification handler code here
CEncryptImage m_encrypt;
	m_encrypt.DoModal();
    a11=m_encrypt.m_a11;
	a12=m_encrypt.m_a12;
	a21=m_encrypt.m_a21;
	a22=m_encrypt.m_a22;
	T=m_encrypt.m_zhouqi;
	N=m_encrypt.m_number;
	flag=TRUE;
}

void CEmbed::Encrypt()
{
int M;//mod M and M is small
int x1,y1;//變換后的坐標(biāo)

if(WaterImageHeight>WaterImageWidth)
  M=WaterImageWidth;
else
  M=WaterImageHeight;


m_WaterEncryptData=new RGBQUAD*[M];
 for(int n=0;n<M;n++)
	 m_WaterEncryptData[n]=new RGBQUAD [M];
                                                                                                                                                                      

for(int i=0;i<N;i++)
{
for(int x=0;x<M;x++)
  for(int y=0;y<M;y++)
  {
   x1=a11*x+a12*y;
	y1=a21*x+a22*y;
	x1=x1%M;
	y1=y1%M;
//	if(x1==0)
//		x1=M-1;
//	if(y1==0)
//		y1=M-1;
 m_WaterEncryptData[x1][y1].rgbReserved=0;
 m_WaterEncryptData[x1][y1].rgbGreen=m_WaterImageData[x][y].rgbGreen;
 m_WaterEncryptData[x1][y1].rgbRed=m_WaterImageData[x][y].rgbRed;
 m_WaterEncryptData[x1][y1].rgbBlue=m_WaterImageData[x][y].rgbBlue;

  }
  for(int a=0;a<M;a++)
	  for(int b=0;b<M;b++)
		  m_WaterImageData[a][b]=m_WaterEncryptData[a][b];
	  
}	

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一卡二卡三卡日韩欧美| 激情图区综合网| 亚洲影视资源网| 亚洲美女少妇撒尿| 亚洲日本青草视频在线怡红院 | 国产视频一区二区在线观看| 精品国精品国产| wwwwxxxxx欧美| 久久精品视频在线免费观看| 久久久www成人免费毛片麻豆| 久久一夜天堂av一区二区三区| 精品日韩成人av| 久久九九久久九九| 国产精品沙发午睡系列990531| 欧美国产成人精品| 亚洲人成小说网站色在线 | 99麻豆久久久国产精品免费优播| 成人av免费在线| 色综合天天综合网天天狠天天| 一本久道久久综合中文字幕| 欧美四级电影网| 欧美一区二视频| 久久精品无码一区二区三区| 中文字幕亚洲一区二区va在线| 亚洲另类在线一区| 免费人成精品欧美精品| 国产精品资源站在线| 99久久国产综合精品女不卡| 欧美怡红院视频| 精品欧美一区二区久久| 国产精品久久久久久妇女6080| 一区二区三区日韩欧美| 免费观看日韩电影| 成人精品小蝌蚪| 欧美性大战久久久久久久蜜臀 | 亚洲色图一区二区三区| 婷婷开心激情综合| 国产在线精品免费| 91社区在线播放| 91精品黄色片免费大全| 久久久久成人黄色影片| 亚洲欧美日韩在线| 久久精品国产网站| 91视视频在线直接观看在线看网页在线看 | 波多野结衣91| 欧美中文字幕一区| 精品国产免费视频| 亚洲精品乱码久久久久久久久| 日本一区中文字幕| 成人av电影在线播放| 91麻豆精品国产自产在线观看一区| 国产日韩欧美精品综合| 亚洲午夜激情av| 懂色av一区二区三区免费看| 欧美乱妇一区二区三区不卡视频| 国产欧美视频一区二区三区| 天天做天天摸天天爽国产一区| 高清av一区二区| 91精品国产免费久久综合| 自拍偷拍欧美激情| 激情图区综合网| 欧美日韩国产大片| 国产精品嫩草99a| 看片的网站亚洲| 欧美日韩综合不卡| 1区2区3区欧美| 国产一区日韩二区欧美三区| 欧美日韩第一区日日骚| 中文字幕va一区二区三区| 美日韩黄色大片| 欧美日韩国产在线观看| 国产精品久久久久aaaa樱花| 久久草av在线| 在线播放国产精品二区一二区四区 | 欧美一区二区三区性视频| 亚洲欧美另类小说视频| 国产suv一区二区三区88区| 日韩精品一区二区三区四区| 一区二区三区高清| 91在线你懂得| 欧美激情在线一区二区三区| 精品中文字幕一区二区小辣椒| 欧美色爱综合网| 亚洲美女区一区| 92精品国产成人观看免费| 国产日韩欧美a| 国产一区二区三区四区五区入口| 制服丝袜亚洲播放| 亚洲成人午夜电影| 欧美主播一区二区三区美女| 亚洲欧美日韩综合aⅴ视频| 成人激情电影免费在线观看| 国产网红主播福利一区二区| 久久99国产精品久久99| 欧美一区二区三区喷汁尤物| 日本91福利区| 日韩一区二区三区高清免费看看 | 欧美性色黄大片| 一区二区三区不卡视频| 色猫猫国产区一区二在线视频| 国产精品大尺度| 91在线免费视频观看| 中文字幕日韩一区| 91在线视频播放| 亚洲愉拍自拍另类高清精品| 在线观看日韩av先锋影音电影院| 一区二区三区波多野结衣在线观看| 91免费国产在线| 一区二区三区在线视频免费观看| 色婷婷综合久久久中文一区二区 | 奇米影视一区二区三区小说| 日韩一级视频免费观看在线| 久久精品国产精品亚洲精品| 亚洲精品一区二区三区在线观看| 韩国av一区二区三区在线观看| 久久久久一区二区三区四区| 国产精品99久久久久久似苏梦涵| 中文字幕国产一区| 色综合色狠狠天天综合色| 一区二区三区产品免费精品久久75| 欧美日韩中文精品| 奇米影视一区二区三区| 欧美精品一区二区三区四区| 成人天堂资源www在线| 亚洲欧美激情插| 欧美日韩激情一区二区三区| 蜜桃精品视频在线| 日本一区二区视频在线观看| 97se亚洲国产综合自在线| 亚洲成人一二三| 久久影院午夜片一区| 91影视在线播放| 日韩一区欧美二区| 国产欧美一区二区三区在线老狼| 91丨九色porny丨蝌蚪| 日韩av中文字幕一区二区三区| 2020国产精品| 99天天综合性| 男男视频亚洲欧美| 中文字幕在线观看不卡| 欧美日韩久久一区| 国产精品99久久不卡二区| 亚洲制服丝袜av| 精品国产区一区| 91久久精品网| 国产久卡久卡久卡久卡视频精品| 亚洲女与黑人做爰| 日韩精品一区二区三区视频在线观看| 成人午夜av影视| 午夜国产不卡在线观看视频| 国产欧美日韩综合精品一区二区 | 中文字幕一区视频| 欧美日韩激情一区二区三区| 国产成人精品影院| 亚洲成va人在线观看| 欧美激情在线免费观看| 91精品国产手机| 99国产精品99久久久久久| 日韩国产一区二| 1区2区3区国产精品| 日韩欧美一区在线观看| 一本色道**综合亚洲精品蜜桃冫 | 欧美岛国在线观看| 91玉足脚交白嫩脚丫在线播放| 久草在线在线精品观看| 亚洲综合一二区| 国产亚洲欧美中文| 337p亚洲精品色噜噜噜| 91丨国产丨九色丨pron| 国产曰批免费观看久久久| 亚洲国产精品久久不卡毛片| 国产亚洲一区二区三区四区| 欧美精品三级日韩久久| 99精品桃花视频在线观看| 极品少妇xxxx精品少妇偷拍| 亚洲国产精品久久不卡毛片 | 久久成人免费网站| 午夜精品久久久久久久久| 中文字幕在线观看不卡视频| 久久精品男人的天堂| 91精品在线麻豆| 欧美三区在线观看| 91传媒视频在线播放| 91在线你懂得| av网站免费线看精品| 国产一区二区看久久| 久久精品二区亚洲w码| 日韩av在线发布| 亚洲福利视频一区| 亚洲激情男女视频| 亚洲女性喷水在线观看一区| 国产精品久久久一区麻豆最新章节| 欧美精品一区二区三区蜜桃| 日韩限制级电影在线观看| 欧美日韩一区二区三区在线 | 精品三级在线看| 日韩一区二区不卡| 日韩三级视频中文字幕| 欧美一区二区三区四区视频| 91精品国产一区二区|