青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

無我

讓內心永遠燃燒著偉大的光明的精神之火!
靈活的思考,嚴謹的實現
豪邁的氣魄、頑強的意志和周全的思考

BMP位圖文件結構及VC操作


 
 BMP位圖文件結構及VC操作
添加時間:2006-12-22   出處:互聯網  作者:breakind zuan
 
 
用普通方法顯示BMP位圖,占內存大,速度慢,在圖形縮小時,失真嚴重,在低顏色位數的設備上顯示高顏色位數的圖形圖形時失真大。本文采用視頻函數顯示BMP位圖,可以消除以上的缺點。
---- 一、BMP文件結構

---- 1. BMP文件組成

---- BMP文件由文件頭、位圖信息頭、顏色信息和圖形數據四部分組成。

---- 2. BMP文件頭

---- BMP文件頭數據結構含有BMP文件的類型、文件大小和位圖起始位置等信息。

---- 其結構定義如下:

typedef struct tagBITMAPFILEHEADER

{

WORDbfType; // 位圖文件的類型,必須為BM

DWORD bfSize; // 位圖文件的大小,以字節為單位

WORDbfReserved1; // 位圖文件保留字,必須為0

WORDbfReserved2; // 位圖文件保留字,必須為0

DWORD bfOffBits; // 位圖數據的起始位置,以相對于位圖

// 文件頭的偏移量表示,以字節為單位

} BITMAPFILEHEADER;

---- 3. 位圖信息頭

BMP位圖信息頭數據用于說明位圖的尺寸等信息。

typedef struct tagBITMAPINFOHEADER{

DWORD biSize; // 本結構所占用字節數

LONGbiWidth; // 位圖的寬度,以像素為單位

LONGbiHeight; // 位圖的高度,以像素為單位

WORD biPlanes; // 目標設備的級別,必須為1

WORD biBitCount// 每個像素所需的位數,必須是1(雙色),

// 4(16色),8(256色)或24(真彩色)之一

DWORD biCompression; // 位圖壓縮類型,必須是 0(不壓縮),

// 1(BI_RLE8壓縮類型)或2(BI_RLE4壓縮類型)之一

DWORD biSizeImage; // 位圖的大小,以字節為單位

LONGbiXPelsPerMeter; // 位圖水平分辨率,每米像素數

LONGbiYPelsPerMeter; // 位圖垂直分辨率,每米像素數

DWORD biClrUsed;// 位圖實際使用的顏色表中的顏色數

DWORD biClrImportant;// 位圖顯示過程中重要的顏色數

} BITMAPINFOHEADER;

---- 4. 顏色表

---- 顏色表用于說明位圖中的顏色,它有若干個表項,每一個表項是一個RGBQUAD類型的結構,定義一種顏色。RGBQUAD結構的定義如下:

typedef struct tagRGBQUAD {

BYTErgbBlue;// 藍色的亮度(值范圍為0-255)

BYTErgbGreen; // 綠色的亮度(值范圍為0-255)

BYTErgbRed; // 紅色的亮度(值范圍為0-255)

BYTErgbReserved;// 保留,必須為0

} RGBQUAD;

顏色表中RGBQUAD結構數據的個數有biBitCount來確定:

當biBitCount=1,4,8時,分別有2,16,256個表項;

當biBitCount=24時,沒有顏色表項。

位圖信息頭和顏色表組成位圖信息,BITMAPINFO結構定義如下:

typedef struct tagBITMAPINFO {

BITMAPINFOHEADER bmiHeader; // 位圖信息頭

RGBQUAD bmiColors[1]; // 顏色表

} BITMAPINFO;

---- 5. 位圖數據

---- 位圖數據記錄了位圖的每一個像素值,記錄順序是在掃描行內是從左到右,掃描行之間是從下到上。位圖的一個像素值所占的字節數:

當biBitCount=1時,8個像素占1個字節;

當biBitCount=4時,2個像素占1個字節;

當biBitCount=8時,1個像素占1個字節;

當biBitCount=24時,1個像素占3個字節;

Windows規定一個掃描行所占的字節數必須是 4的倍數(即以long為單位),不足的以0填充,

一個掃描行所占的字節數計算方法: DataSizePerLine= (biWidth* biBitCount+31)/8;

// 一個掃描行所占的字節數 DataSizePerLine= DataSizePerLine/4*4; // 字節數必須是4的倍數

位圖數據的大小(不壓縮情況下): DataSize= DataSizePerLine* biHeight;

---- 二、BMP位圖一般顯示方法

---- 1. 申請內存空間用于存放位圖文件

---- GlobalAlloc(GHND,FileLength);

---- 2. 位圖文件讀入所申請內存空間中

---- LoadFileToMemory( mpBitsSrc,mFileName);

---- 3. 在OnPaint等函數中用創建顯示用位圖

---- 用CreateDIBitmap()創建顯示用位圖,用CreateCompatibleDC()創建兼容DC,

---- 用SelectBitmap()選擇顯示位圖。

---- 4. 用BitBlt或StretchBlt等函數顯示位圖

---- 5. 用DeleteObject()刪除所創建的位圖

---- 以上方法的缺點是: 1)顯示速度慢; 2) 內存占用大; 3) 位圖在縮小顯示時圖形失真大,(可通過安裝字體平滑軟件來解決); 4) 在低顏色位數的設備上(如256顯示模式)顯示高顏色位數的圖形(如真彩色)圖形失真嚴重。

---- 三、BMP位圖縮放顯示

---- 用DrawDib視頻函數來顯示位圖,內存占用少,速度快,而且還可以對圖形進行淡化(Dithering )處理。淡化處理是一種圖形算法,可以用來在一個支持比圖像所用顏色要少的設備上顯示彩色圖像。BMP位圖顯示方法如下:

---- 1. 打開視頻函數DrawDibOpen(),一般放在在構造函數中

---- 2. 申請內存空間用于存放位圖文件

---- GlobalAlloc(GHND,FileLength);

---- 3. 位圖文件讀入所申請內存空間中

---- LoadFileToMemory( mpBitsSrc,mFileName);

---- 4. 在OnPaint等函數中用DrawDibRealize(),DrawDibDraw()顯示位圖

---- 5. 關閉視頻函數DrawDibClose(),一般放在在析構函數中

---- 以上方法的優點是: 1)顯示速度快; 2) 內存占用少; 3) 縮放顯示時圖形失真小,4) 在低顏色位數的設備上顯示高顏色位數的圖形圖形時失真小; 5) 通過直接處理位圖數據,可以制作簡單動畫。

---- 四、CViewBimap類編程要點

---- 1. 在CViewBimap類中添加視頻函數等成員

HDRAWDIB m_hDrawDib; // 視頻函數

HANDLEmhBitsSrc; // 位圖文件句柄(內存)

LPSTR mpBitsSrc; // 位圖文件地址(內存)

BITMAPINFOHEADER *mpBitmapInfo; // 位圖信息頭

---- 2. 在CViewBimap類構造函數中添加打開視頻函數

---- m_hDrawDib= DrawDibOpen();

---- 3. 在CViewBimap類析構函數中添加關閉視頻函數

if( m_hDrawDib != NULL)

{

DrawDibClose( m_hDrawDib);

m_hDrawDib = NULL;

}

---- 4. 在CViewBimap類圖形顯示函數OnPaint中添加GraphicDraw()

voidCViewBitmap::OnPaint()

{

CPaintDC dc(this); // device context for painting

GraphicDraw( );

}

 

voidCViewBitmap::GraphicDraw( void )

{

CClientDC dc(this); // device context for painting

BITMAPFILEHEADER *pBitmapFileHeader;

ULONG bfoffBits= 0;

CPoint Wid;

 

// 圖形文件名有效 (=0 BMP)

if( mBitmapFileType < ID_BITMAP_BMP ) return;

 

// 圖形文件名有效 (=0 BMP)

// 準備顯示真彩位圖

pBitmapFileHeader= (BITMAPFILEHEADER *) mpBitsSrc;

bfoffBits= pBitmapFileHeader->bfOffBits;

 

// 使用普通函數顯示位圖

 

if( m_hDrawDib == NULL || mDispMethod == 0)

{

HBITMAP hBitmap=::CreateDIBitmap(dc.m_hDC,

mpBitmapInfo, CBM_INIT, mpBitsSrc+bfoffBits,

(LPBITMAPINFO) mpBitmapInfo,DIB_RGB_COLORS);

// 建立位圖

HDC hMemDC=::CreateCompatibleDC(dc.m_hDC);// 建立內存

HBITMAP hBitmapOld= SelectBitmap(hMemDC, hBitmap); // 選擇對象

// 成員CRect mDispR用于指示圖形顯示區域的大小.

// 成員CPoint mPos用于指示圖形顯示起始位置坐標.

if( mPos.x > (mpBitmapInfo- >biWidth - mDispR.Width() ))

mPos.x= mpBitmapInfo->biWidth - mDispR.Width() ;

if( mPos.y > (mpBitmapInfo- >biHeight- mDispR.Height()))

mPos.y= mpBitmapInfo- >biHeight- mDispR.Height();

if( mPos.x < 0 ) mPos.x= 0;

if( mPos.y < 0 ) mPos.y= 0;

 

if( mFullViewTog == 0)

{

// 顯示真彩位圖

::BitBlt(dc.m_hDC,0,0, mDispR.Width(), mDispR.Height(),

hMemDC,mPos.x,mPos.y, SRCCOPY);

} else {

::StretchBlt(dc.m_hDC,0,0, mDispR.Width(), mDispR.Height(),

hMemDC,0,0, mpBitmapInfo- >biWidth, mpBitmapInfo-

>biHeight, SRCCOPY);

}

// 結束顯示真彩位圖

::DeleteObject(SelectObject(hMemDC,hBitmapOld));

// 刪 除 位 圖

} else {

 

// 使用視頻函數顯示位圖

 

if( mPos.x > (mpBitmapInfo- >biWidth - mDispR.Width() ))

mPos.x= mpBitmapInfo- >biWidth - mDispR.Width() ;

if( mPos.y > (mpBitmapInfo- >biHeight- mDispR.Height()))

mPos.y= mpBitmapInfo- >biHeight- mDispR.Height();

if( mPos.x < 0 ) mPos.x= 0;

if( mPos.y < 0 ) mPos.y= 0;

 

// 顯示真彩位圖

DrawDibRealize( m_hDrawDib, dc.GetSafeHdc(), TRUE);

 

if( mFullViewTog == 0)

{

Wid.x= mDispR.Width();

Wid.y= mDispR.Height();

// 1:1 顯示時, 不能大于圖形大小

if( Wid.x > mpBitmapInfo- >biWidth )

Wid.x = mpBitmapInfo- >biWidth;

if( Wid.y > mpBitmapInfo- >biHeight)

Wid.y = mpBitmapInfo- >biHeight;

 

DrawDibDraw( m_hDrawDib, dc.GetSafeHdc()

, 0, 0, Wid.x, Wid.y,

mpBitmapInfo, (LPVOID) (mpBitsSrc+bfoffBits),

mPos.x, mPos.y, Wid.x, Wid.y, DDF_BACKGROUNDPAL);

} else {

DrawDibDraw( m_hDrawDib, dc.GetSafeHdc(),

0, 0, mDispR.Width(), mDispR.Height(),

mpBitmapInfo, (LPVOID) (mpBitsSrc+bfoffBits),

0, 0, mpBitmapInfo- >biWidth, mpBitmapInfo- >biHeight,

DDF_BACKGROUNDPAL);

}

}

return;

}

---- 五、使用CViewBimap類顯示BMP位圖

---- 1. 在Visual C++5.0中新建一個名稱為mymap工程文件,類型為MFC AppWizard[exe]。在編譯運行通過后,在WorkSpace(如被關閉,用Alt_0打開)點擊ResourceView,點擊Menu左側的+符號展開Menu 條目,雙擊IDR_MAINFRAME條目,進入菜單資源編輯,在'“查看(V)”下拉式菜單(英文版為View下拉式菜單)的尾部添加“ViewBitmap”條目,其ID為ID_VIEW_BITMAP。

---- 2. 在Visual C++5.0中點擊下拉式菜單Project- >Add To project- >Files...,將Bitmap0.h 和Bitmap0.cpp添加到工程文件中。

---- 3. 在Visual C++5.0中按Ctrl_W進入MFC ClassWizard,選擇類名稱為CMainFrame,ObjectIDs: ID_VIEW_BITMAP,Messages選擇Command,然后點擊Add Fucction按鈕,然后輸入函數名為OnViewBima p。在添加OnViewBimap后,在Member functions: 中點擊OnViewBimap條目,點擊Edit Code按鈕編輯程序代碼。代碼如下:

void CMainFrame::OnViewBitmap()

{

// TODO: Add your command handler code here

CViewBitmap *pViewBitmap= NULL;

 

pViewBitmap= new CViewBitmap( "BITMAP.BMP", this);

pViewBitmap- >ShowWindow( TRUE);

}

---- 并在該程序的頭部添加#include "bitmap0.h",然后編譯運行。

---- 4. 找一個大一點的真彩色的BMP位圖,將它拷貝到BITMAP.BMP中。

---- 5. 運行時,點擊下拉式菜單“查看(V)- >ViewBitmap”(英文版為View- > ViewBitmap)即可顯示BITMAP.BMP位圖。

---- 六、CViewBimap類功能說明

---- 1. 在客戶區中帶有水平和垂直滾動條。在位圖大小大于顯示客戶區時,可以使用滾動條;在位圖大小小于顯示客戶區或全屏顯示時,滾動條無效。

---- 2. 在客戶區中底部帶有狀態條。狀態條中的第一格為位圖信息,第二格為位圖顯示方法,可以是使用普通函數或使用視頻函數。在第二格區域內點擊鼠標,可在兩者之間接換。第三格為位圖顯示比例,可以是1;1顯示或全屏顯示。在第三格區域內點擊鼠標,可在兩者之間接換。在全屏顯示時,如果位圖比客戶區小,則對位圖放大; 如果位圖比客戶區大,則對位圖縮小。

---- 3. 支持文件拖放功能。可以從資源管理器中拖動一個位圖文件到客戶區,就可以顯示該位圖。

---- 程序調試通過后,可以找一個較大的真彩色位圖或調整客戶區比位圖小,在全屏顯示方式下,比較使用普通函數與使用視頻函數的差別。可以看出,位圖放大時兩者差別不大,但在位圖縮小時,兩者差別明顯; 使用視頻函數時位圖失真小,顯示速度快。

---- 還可以從控制面板中將屏幕顯示方式從真彩色顯示模式切換到256色顯示模式,再比較使用普通函數與使用視頻函數顯示同一個真彩色位圖的差別。現在可以體會到使用視頻函數的優越性了吧。

---- 在全屏顯示時,位圖的xy方向比例不相同,如要保持相同比例,可在顯示程序中加以適當調整即可,讀者可自行完成。

 

DirectSound學習指南之使用WAV數據

使用WAV數據

  在Windows 驅動模型(WDM)中,DirectSound硬件緩沖區能夠播放任何未壓縮或壓縮的聲音格式,這些格式能夠被一個WAVEFORMATEX或WAVEFORMATEXTENSIBLE結構描述,并由硬件支持。軟件緩沖區和非WDM硬件緩沖區只支持8位和16位未壓縮格式。

  波形(WAV)數據通常儲存在資源交換文件格式(RIFF)的文件或資源中。數據包括一個WAV格式描述,包含如采樣率和輸出通道數等參數。

  多波段WAV格式

  在WDM驅動器中,DirectSound緩沖區支持擁有兩個以上輸出通道的WAV格式。對于如5.1的揚聲器配置,它在前臺左,中,右,后臺左,右,以及低頻增強器處均有揚聲器。

  WAVEFORMATEXTENSIBLE結構描述了一個多通道波形格式。這個結構是對WAVEFORMATEX的擴展,配置了已經由WAVEFORMATEX中cbSize成員支持的額外字節。當需要WAVEFORMATEX的地方,WAVEFORMATEXTENSIBLE結構能夠被轉化為WAVEFORMATEX。

  如果系統配置的物理揚聲器比多波段WAV文件中指定的通道數少,音頻數據將被適當混合并輸出到現有的揚聲器。DirectSound不支持多波段格式的緩沖區的3D處理和效果。企圖創建帶有DSBCAPS_CTRL3D或DSBCAPS_CTRLFX標識的緩沖區和一個多波段WAV格式將會失敗。

  讀取WAV數據

  WAV文件是資源交換文件格式(RIFF),它由若干數量的包含頭信息(如聲音采樣格式)或數據(采樣本身)的命名塊組成。Win32 API提供了打開和關閉RIFF文件,探索塊等函數。這些函數名都以“mmio”開頭。

  為了以可執行方式存儲WAV聲音,將WAV文件作為資源進行導入,并為它們命名。注意CWaveFile類期望這些資源是WAVE或WAV類型,并且是可執行模塊而不是一個DLL。

  DirectSound API 不包含載入聲音數據的方法。然而,Dsutil.cpp文件被許多SDK例子程序用來實現若干類,這些類能夠被用來從文件,資源或一個內存地址創建聲音緩沖區。

  使用例子類初始化DirectSound和創建載入緩沖區的步驟包括:

  1. 創建一個CSoundManager例子類的對象。

  2. 調用CSoundManager::Initialize創建設備對象。

  3. 將一個文件或資源名傳給CSoundManager::Create或將一個內存地址傳給CSoundManager::CreateFromMemory。這些方法返回一個CSound例子類的對象,該類表示一個或多個大小恰能容納數據的靜態緩沖區。(你能夠創建多個緩沖區來同時播放多個聲音實例)或者,向CStreamingSound例子類傳遞一個文件或資源名。這個方法返回一個CStreamingSound例子類的對象,它表示了一個單獨的流緩沖區。

  4. 調用先前步驟中獲取的對象中的FillBufferWithSound方法。它將文件,資源或者內存地址中的數據讀入緩沖區。對于流緩沖區,它以所能容納的最大數據為限填充緩沖區,并使用CStreamingSound::HandleWaveStreamNotification在播放緩沖區的同時更新數據。

  注意實際的數據讀取是由一個CWaveFile對象完成,它是CSound或CStreamingSound對象中的一個受保護成員。你通常不必直接使用CWaveFile類;然而,你能夠參考這個類的實現來獲取分析WAV數據的信息。

  計算一個WAV聲音的持續時間

  一個波形將要播放的時間長度取決于數據大小和格式。數據大小和格式能夠通過調用DirectSound例子框架中的CWaveFile::GetSize和CWaveFile::GetFormat方法獲取。

  以下例子函數,并沒有使用例子類,返回了一個WAV文件的持續時間,以毫秒為單位:

DWORD GetSoundLength(LPSTR strFileName)
...{
 CWaveFile* pWav;
 DWORD dwLen = 0;
 DWORD dwSize;
 WAVEFORMATEX* wfx;

 pWav = new CWaveFile();
 if (SUCCEEDED(pWav->Open(strFileName, NULL, WAVEFILE_READ)))
 ...{
  wfx = pWav->GetFormat();
  dwSize = pWav->GetSize();
  dwLen = (DWORD) (1000 * dwSize / wfx->nAvgBytesPerSec);
  pWav->Close();
 }
 if (pWav) delete pWav;
 return dwLen;
}
 

posted on 2007-07-22 15:25 Tim 閱讀(2300) 評論(0)  編輯 收藏 引用 所屬分類: 游戲編程

<2012年4月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

導航

統計

公告

本博客原創文章,歡迎轉載和交流。不過請注明以下信息:
作者:TimWu
郵箱:timfly@yeah.net
來源:m.shnenglu.com/Tim
感謝您對我的支持!

留言簿(9)

隨筆分類(173)

IT

Life

搜索

積分與排名

最新隨筆

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久夜色精品国产| 蜜臀99久久精品久久久久久软件| 这里只有精品电影| 久久久99免费视频| 亚洲一区二区三区免费观看| 欧美激情1区| 美女脱光内衣内裤视频久久影院 | 久久午夜视频| 久久久久国产精品一区| 欧美一区二区三区四区在线观看地址| 亚洲美女性视频| 亚洲精品日日夜夜| 日韩一区二区福利| 国产精品99久久不卡二区| 日韩亚洲欧美成人一区| 日韩视频永久免费观看| 99视频精品| 亚洲一区二区三区视频| 香蕉久久国产| 久久精品国产精品亚洲| 久久久久**毛片大全| 日韩一二三区视频| 亚洲午夜av电影| 久久xxxx精品视频| 欧美激情精品久久久久久免费印度 | 亚洲第一免费播放区| 你懂的国产精品| 亚洲国产欧美不卡在线观看| 久久国产毛片| 欧美成年人在线观看| 日韩视频永久免费| 欧美一级在线亚洲天堂| 玖玖玖免费嫩草在线影院一区| 欧美激情第六页| 国产精品欧美日韩一区| 亚洲第一偷拍| 欧美一区二区私人影院日本| 欧美v亚洲v综合ⅴ国产v| 亚洲精品一区二区三区蜜桃久| 亚洲综合色噜噜狠狠| 久久久久久九九九九| 欧美激情国产高清| 国产日韩亚洲| 亚洲欧美变态国产另类| 欧美日韩国产综合新一区| 亚洲天堂男人| 亚洲深夜av| 欧美成人久久| 久久成人av少妇免费| 亚洲永久免费精品| 久久国产欧美日韩精品| 午夜精品久久久久久久久久久| 久久综合九色综合久99| 99re66热这里只有精品4| 亚洲国产综合在线| 欧美中文字幕视频在线观看| 欧美日韩亚洲国产一区| 国自产拍偷拍福利精品免费一| 一本大道av伊人久久综合| 亚洲欧美日韩久久精品| 欧美激情a∨在线视频播放| 另类综合日韩欧美亚洲| 一区二区自拍| 欧美大片第1页| 免费国产一区二区| 99国产精品久久久久久久| 亚洲茄子视频| 欧美日韩免费一区二区三区视频 | 一区二区三区久久| 亚洲激情啪啪| 欧美日韩第一页| 亚洲一区日韩| 午夜精品福利一区二区蜜股av| 国产精品一区视频网站| 亚洲免费影视第一页| 亚洲欧美在线网| 好看的日韩av电影| 亚洲国产精品专区久久| 欧美日韩一区二区三区在线| 性欧美videos另类喷潮| 久久久精品视频成人| 亚洲九九九在线观看| 在线一区二区三区四区| 国产日韩一区欧美| 亚洲国产高清在线| 国产精品久久久久一区二区三区共| 欧美一区二区在线免费观看| 久久精品在线免费观看| 亚洲精品免费电影| 一本大道久久a久久精二百| 国产三级欧美三级日产三级99| 免费观看一区| 国产精品久久久久久久久动漫| 快she精品国产999| 欧美日韩三级| 美女久久网站| 国产精品一区二区在线| 亚洲国产精品成人综合色在线婷婷| 欧美日韩国产一中文字不卡| 久久精品99国产精品| 亚洲在线黄色| 国内精品久久久久影院薰衣草| 老司机精品视频一区二区三区| 亚洲综合日韩在线| 久久一区国产| 亚洲视频一区二区| 亚洲国产va精品久久久不卡综合| 女生裸体视频一区二区三区| 99riav国产精品| 久久成人综合网| 亚洲伊人一本大道中文字幕| 国产伦理精品不卡| 欧美福利一区二区| 六月婷婷一区| 午夜亚洲影视| 99精品国产在热久久下载| 久久综合伊人77777| 亚洲网友自拍| 亚洲欧洲另类| 国内成人自拍视频| 国产精品黄页免费高清在线观看| 久久午夜色播影院免费高清| 亚洲午夜精品| 一本色道久久综合亚洲精品高清| 美女视频黄免费的久久| 欧美一级片一区| 午夜精品久久久久久99热| 亚洲第一福利在线观看| 国产自产在线视频一区| 亚洲福利视频一区二区| 激情成人av| 亚洲国产成人精品女人久久久| 国外成人在线视频网站| 国产精品日韩专区| 国产欧美日韩一区| 国产精品影片在线观看| 国产午夜精品福利| 国产精品手机视频| 国产欧美在线视频| 亚洲视频精品| 亚洲大片在线观看| 亚洲精品视频在线观看免费| 欧美承认网站| 亚洲精品久久久蜜桃| 亚洲午夜精品久久| 亚洲制服欧美中文字幕中文字幕| 亚洲欧洲精品天堂一级| 正在播放欧美一区| 欧美淫片网站| 欧美三级免费| 亚洲成色www8888| 99精品国产高清一区二区| 欧美在线观看网站| 亚洲高清视频的网址| 亚洲婷婷免费| 美女精品网站| 国产日韩精品视频一区二区三区| 狠狠综合久久av一区二区老牛| 亚洲精品美女在线观看播放| 亚洲一二三区精品| 欧美激情bt| 欧美在线观看视频在线| 欧美欧美午夜aⅴ在线观看| 国内精品免费在线观看| 亚洲一二三区在线观看| 欧美韩国一区| 久久深夜福利| 亚洲激情av在线| 久久综合九色综合久99| 亚洲一区二区少妇| 国产精品亚洲精品| 久久av资源网站| 久久在线免费观看| 亚洲美女电影在线| 一本色道久久综合一区| 欧美性淫爽ww久久久久无| 一区二区高清在线| 99国产成+人+综合+亚洲欧美| 欧美日韩国产精品一卡| 日韩一区二区精品视频| 夜夜嗨av色综合久久久综合网| 国产精品久久久久久久午夜| 欧美精品激情blacked18| 亚洲黄色成人| 亚洲一区图片| 亚洲国产日韩欧美一区二区三区| 亚洲高清在线观看| 国产精品欧美一区喷水| 欧美成人国产| 国产精品www.| 亚洲日本成人| 在线观看av不卡| 亚洲午夜精品一区二区| 伊人精品成人久久综合软件| 一区二区精品| 一区二区欧美亚洲| 欧美高清自拍一区| 免费观看成人www动漫视频| 国产精品一区二区三区观看| 亚洲激情网站|