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

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

?? dcbm.c

?? 傅立葉變換和小波變換是圖像壓縮的重要工具。該代大戲是利用小波變換進行圖像壓縮。
?? C
字號:
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h> 

#include <crblib/inc.h>
#include <crblib/fileutil.h>

#include "dcbm.h"
#include "winutil.h"

#pragma warning(disable : 4244)

/*********************************************/

#define LBM_cleanUp(err) if(1) { char str[200]; strcpy(str,fName); strcat(str,":"); strcat(str,err); MessageBox( windowH, str , "loadBitMap error", MB_OK ); return( NULL); } else

#define GET_2B(array,offset) ((uword) (ubyte)(array[offset+0]) + \
						 	(((uword) (ubyte)(array[offset+1])) << 8))
#define GET_4B(array,offset) ((ulong) (ubyte)(array[offset+0]) + \
						 	(((ulong) (ubyte)(array[offset+1])) << 8) + \
						 	(((ulong) (ubyte)(array[offset+2])) << 16) + \
						 	(((ulong) (ubyte)(array[offset+3])) << 24))

HBITMAP LoadBitMap(HWND windowH, HDC hdc, char * fName )
{
FILE * inFile;
BITMAPINFO * bmi;
void * bmdata;
HBITMAP hbm;

if ( (inFile = fopen(fName,"rb")) == NULL ) {
	char errstr[80];
	sprintf(errstr,"fopen failed, error : %d\n\0",errno);
	perror("fopen bitmap:");
	LBM_cleanUp(errstr);
}

	{
	ubyte bmpfileheader[14];
	ubyte bmpinfoheader[64];
	ulong bfOffBits;
	ulong headerSize;
	ulong biWidth = 0;
	long biHeight = 0;
	uword biPlanes;
	ulong biCompression;
	ulong biClrUsed = 0;
	int mapentrysize = 0;		/* 0 indicates no colormap */
	long bPad;
	ulong row_width;
	uword bits_per_pixel;

	/* Read and verify the bitmap file header */

	if (! FReadOk(inFile, bmpfileheader, 14))
		LBM_cleanUp("read short");

	if (GET_2B(bmpfileheader,0) != 0x4D42) /* 'BM' */
		LBM_cleanUp("bmp sign");

	bfOffBits = (ulong) GET_4B(bmpfileheader,10);

	/* We ignore the remaining fileheader fields */

	/* The infoheader might be 12 bytes (OS/2 1.x), 40 bytes (Windows),
	 * or 64 bytes (OS/2 2.x).	Check the first 4 bytes to find out which.
	 */
	if (! FReadOk(inFile, bmpinfoheader, 4))
		LBM_cleanUp("read short");

	headerSize = (ulong) GET_4B(bmpinfoheader,0);

	if (headerSize < 12 || headerSize > 64)
		LBM_cleanUp("bad header size");

	if (! FReadOk(inFile, bmpinfoheader+4, headerSize-4))
		LBM_cleanUp("read short");

	switch ((int) headerSize) {

			/* OS/2 1.x support removed */

		case 40:
		case 64:
			/* Decode Windows 3.x header (Microsoft calls this a BITMAPINFOHEADER) */
			/* or OS/2 2.x header, which has additional fields that we ignore */
			biWidth	= GET_4B(bmpinfoheader,4);
			biHeight = GET_4B(bmpinfoheader,8);
			biPlanes = GET_2B(bmpinfoheader,12);
			bits_per_pixel = (int) GET_2B(bmpinfoheader,14);
			biCompression = GET_4B(bmpinfoheader,16);
			biClrUsed = GET_4B(bmpinfoheader,32);
			if ( biClrUsed == 0 ) biClrUsed = 256;
			/* biSizeImage, biClrImportant fields are ignored */

			switch (bits_per_pixel) {

				case 8:			/* colormapped image */
					mapentrysize = 4;		/* Windows uses RGBQUAD colormap */
					break;
				case 24:			/* RGB image */
					mapentrysize = 0;
					break;
				default:
					LBM_cleanUp("bad depth");
					break;
			}

			break;
		default:
			LBM_cleanUp("bad header len");
			break;
	}

	/* Compute distance to bitmap data --- will adjust for colormap below */
	bPad = bfOffBits - (headerSize + 14);

	if ( ( bmi = malloc( sizeof(BITMAPINFO) + (mapentrysize * biClrUsed) ) ) == NULL )
		LBM_cleanUp("malloc");

	memcpy((char *)bmi,bmpinfoheader,headerSize);

	/* Read the colormap, if any */
	if (mapentrysize > 0 && biClrUsed > 0) {

		if (! FReadOk(inFile, ((char *)bmi) + headerSize , (mapentrysize * biClrUsed)))
			LBM_cleanUp("read short");

		/* account for size of colormap */
		bPad -= biClrUsed * mapentrysize;
	}

	/* Skip any remaining pad bytes */
	if (bPad < 0)			/* incorrect bfOffBits value? */
		LBM_cleanUp("bad header length");
	else if ( bPad > 0 ) {
		fseek(inFile,bPad,SEEK_CUR);
	}

	/* Compute row width in file, including padding to 4-byte boundary */
	if (bits_per_pixel == 24)
		row_width = biWidth * 3;
	else
		row_width = biWidth;

	row_width = ((((row_width-1)>>2) + 1)<<2) ;

	if ( (bmdata = malloc(row_width * abs(biHeight))) == NULL )
		LBM_cleanUp("malloc failed");

	FRead(inFile,bmdata,row_width * abs(biHeight)); // may read short due to compression

	}

fclose(inFile);

hbm = CreateDIBitmap( hdc, &(bmi->bmiHeader) , CBM_INIT , bmdata, bmi , DIB_RGB_COLORS	);

if ( hbm == NULL )
	LBM_cleanUp("CreateDIBitmap failed!");

free(bmdata);
free(bmi);

return hbm;
}

DCBM * LoadDCBM( HWND hwnd, HDC hdc, char *file)
{
HBITMAP bmp;
DCBM * ret;

bmp = LoadBitMap(hwnd,hdc,file);
if ( ! bmp ) return NULL;
ret = MakeDCBM(hdc,bmp);
DeleteObject(bmp);

return ret;
}

DCBM * MakeDCBM( HDC hdc, HBITMAP bitmap )
{
DCBM 		*dcbm;
BITMAP      bitmapbuff;
HDC			memorydc;
POINT 		size;
bool		good = false;

	if ( (memorydc = CreateCompatibleDC( hdc )) == NULL ) {
		ShowLastError("Create memory DC");
		return 0;
	}

    SelectObject( memorydc, bitmap );
    SetMapMode( memorydc, GetMapMode( hdc ) );
    GetObject( bitmap, sizeof( BITMAP ), (LPSTR) &bitmapbuff );

    DPtoLP( memorydc, &size, 1 );

	if ( (dcbm = malloc(sizeof(DCBM))) ) {
		dcbm->size.x = bitmapbuff.bmWidth;
		dcbm->size.y = bitmapbuff.bmHeight;
		dcbm->rasterOp = SRCCOPY;
		if ( (dcbm->bitmapdc = CreateCompatibleDC( hdc )) ) {	
			SelectObject(dcbm->bitmapdc,
				CreateBitmap(dcbm->size.x,dcbm->size.y,bitmapbuff.bmPlanes,bitmapbuff.bmBitsPixel,NULL) );
			SetMapMode( dcbm->bitmapdc, GetMapMode( hdc ) );

			if ( BitBlt( dcbm->bitmapdc, 0, 0, dcbm->size.x, dcbm->size.y, memorydc, 0, 0, dcbm->rasterOp) ) {
				good = true;
			} else {
				ShowLastError("Bit Blt");
			}
		} else {
			ShowLastError("Create Compatible DC");
		}
	}

    DeleteDC( memorydc );

	if ( ! good ) {
		FreeDCBM(dcbm);
		return NULL;
	}

return(dcbm);
}

DCBM * MakeDCBMHalf( HDC hdc, HBITMAP bitmap )
{
DCBM 		*dcbm;
BITMAP      bitmapbuff;
HDC			memorydc;
POINT 		size;

	if ( (memorydc = CreateCompatibleDC( hdc )) == NULL ) {
		ShowLastError("Create memory DC");
		return 0;
	}

    SelectObject( memorydc, bitmap );
    SetMapMode( memorydc, GetMapMode( hdc ) );
    GetObject( bitmap, sizeof( BITMAP ), (LPSTR) &bitmapbuff );

  	size.x = bitmapbuff.bmWidth;
    size.y = bitmapbuff.bmHeight;

    DPtoLP( memorydc, &size, 1 );

	dcbm = new(DCBM);
	dcbm->size.x = size.x/2;
	dcbm->size.y = size.y/2;
	dcbm->bitmapdc = CreateCompatibleDC( hdc );
	SelectObject(dcbm->bitmapdc,
		CreateBitmap(dcbm->size.x,dcbm->size.y,bitmapbuff.bmPlanes,bitmapbuff.bmBitsPixel,NULL) );
    SetMapMode( dcbm->bitmapdc, GetMapMode( hdc ) );

	SetStretchBltMode(memorydc,HALFTONE);
	SetBrushOrgEx(memorydc,0,0,NULL);

	if ( ! StretchBlt( dcbm->bitmapdc, 0, 0, dcbm->size.x, dcbm->size.y, memorydc, 0, 0, size.x, size.y, dcbm->rasterOp) ) {
		FreeDCBM(dcbm);
		dcbm = NULL;
	}
	
    DeleteDC( memorydc );

	dcbm->rasterOp = SRCCOPY;

return(dcbm);
}

DCBM * MakeDCBMscaled( HDC hdc, HBITMAP bitmap, float x_scale, float y_scale)
{
DCBM 		*dcbm;
BITMAP      bitmapbuff;
HDC			memorydc;
POINT 		size;
int x,y,sizex,sizey;

	if ( (memorydc = CreateCompatibleDC( hdc )) == NULL ) {
		ShowLastError("Create memory DC");
		return 0;
	}

    SelectObject( memorydc, bitmap );
    SetMapMode( memorydc, GetMapMode( hdc ) );
    GetObject( bitmap, sizeof( BITMAP ), (LPSTR) &bitmapbuff );

  	size.x = bitmapbuff.bmWidth;
    size.y = bitmapbuff.bmHeight;

    DPtoLP( memorydc, &size, 1 );

	dcbm = malloc(sizeof(DCBM));
	dcbm->size.x = abs(x_scale) * size.x;
	dcbm->size.y = abs(y_scale) * size.y;
	dcbm->bitmapdc = CreateCompatibleDC( hdc );
	SelectObject(dcbm->bitmapdc,
		CreateBitmap(dcbm->size.x,dcbm->size.y,bitmapbuff.bmPlanes,bitmapbuff.bmBitsPixel,NULL) );
    SetMapMode( dcbm->bitmapdc, GetMapMode( hdc ) );

	SetStretchBltMode(memorydc,HALFTONE);
	SetBrushOrgEx(memorydc,0,0,NULL);

	x = y = 0;
	sizex = x_scale * size.x;
	sizey = y_scale * size.y;
	if ( sizex < 0 ) x += abs(sizex) -1;
	if ( sizey < 0 ) y += abs(sizey) -1;

	if ( ! StretchBlt( dcbm->bitmapdc, x, y, sizex, sizey, memorydc, 0, 0, size.x, size.y, dcbm->rasterOp) ) {
		FreeDCBM(dcbm);
		dcbm = NULL;
	}
	
    DeleteDC( memorydc );

	dcbm->rasterOp = SRCCOPY;

return(dcbm);
}

DCBM  * CopyDCBM_stretching(DCBM *src,float x_scale,float y_scale)
{
DCBM 		*dcbm;
int			sizex,sizey,x,y;

	if ( (dcbm = malloc(sizeof(DCBM))) == NULL )
		return NULL;

	sizex = (((float)src->size.x) * x_scale);
	sizey = (((float)src->size.y) * y_scale);
	dcbm->size.x = abs(sizex);
	dcbm->size.y = abs(sizey);
	dcbm->bitmapdc = CreateCompatibleDC( src->bitmapdc );
	SelectObject(dcbm->bitmapdc,
		CreateCompatibleBitmap(src->bitmapdc,dcbm->size.x,dcbm->size.y));
    SetMapMode( dcbm->bitmapdc, GetMapMode( src->bitmapdc ) );

	SetStretchBltMode(src->bitmapdc,HALFTONE);
	SetBrushOrgEx(src->bitmapdc,0,0,NULL);

	x = y = 0;
	if ( sizex < 0 ) x += abs(sizex) -1;
	if ( sizey < 0 ) y += abs(sizey) -1;

	if ( ! StretchBlt( dcbm->bitmapdc, x, y, sizex, sizey,
						src->bitmapdc, 0, 0, src->size.x, src->size.y,
						dcbm->rasterOp) ) {
		FreeDCBM(dcbm);
		dcbm = NULL;
	}

return dcbm;
}

DCBMA * CopyDCBMA_stretching(DCBMA *src,float x_scale,float y_scale)
{
DCBMA * a;
int i;

	if ( (a = malloc(sizeof(DCBMA))) == NULL ) return NULL;

	a->numFrames = src->numFrames;

	if ( (a->frames = malloc(a->numFrames*sizeofpointer) ) == NULL ) { free(a); return NULL; }

	a->size.x = a->size.y = 0;

	for(i=0;i<a->numFrames;i++) {
		a->frames[i] = CopyDCBM_stretching(src->frames[i],x_scale,y_scale);

		if ( a->frames[i] == NULL ) {
			FreeDCBMA(a);
			return NULL;
		} else {

		if ( a->frames[i]->size.x > a->size.x )
			a->size.x = a->frames[i]->size.x;
		if ( a->frames[i]->size.y > a->size.y )
			a->size.y = a->frames[i]->size.y;

		}
	}

return a;
}

void FreeDCBM( DCBM * dcbm )
{
DeleteDC( dcbm->bitmapdc );
free(dcbm);
}

void DrawDCBMcenter(  HDC hdc, DCBM *dcbm, long x, long y )
{
x -= dcbm->size.x>>1;
y -= dcbm->size.y>>1;
DrawDCBM(hdc,dcbm,x,y);
}


void DrawDCBMinRectnoGrow( HDC hdc, DCBM *dcbm, RECT *r )
{
if ( dcbm->size.x < width(*r) && dcbm->size.y < height(*r) ) {
	DrawDCBMcenter(hdc,dcbm,midx(*r),midy(*r));
} else {
	DrawDCBMScaling(hdc,dcbm,r->left,r->top,width(*r),height(*r));
}
}

void DrawDCBMinRect( HDC hdc, DCBM *dcbm, RECT *r )
{
DrawDCBMScaling(hdc,dcbm,r->left,r->top,width(*r),height(*r));
}

void DrawDCBMScaling( HDC hdc, DCBM *dcbm, long x, long y, long sizex, long sizey )
{
if ( ! dcbm ) return;

	SetStretchBltMode(dcbm->bitmapdc,HALFTONE);
	SetBrushOrgEx(dcbm->bitmapdc,0,0,NULL);

	if ( sizex < 0 ) x += abs(sizex) -1;
	if ( sizey < 0 ) y += abs(sizey) -1;
	StretchBlt( hdc, x, y, sizex, sizey,
						dcbm->bitmapdc, 0, 0, dcbm->size.x, dcbm->size.y,
						dcbm->rasterOp);
}

void DrawDCBM( HDC hdc, DCBM *dcbm, long x, long y )
{
if ( ! dcbm ) return;
BitBlt( hdc, x, y, dcbm->size.x, dcbm->size.y, dcbm->bitmapdc, 0, 0, dcbm->rasterOp);
}

DCBMA * LoadDCBMA(HWND windowH,int frames,char ** files)
{
DCBMA * a;
HBITMAP bmp;
HDC hdc;
int i;

	if ( (a = malloc(sizeof(DCBMA))) == NULL ) return NULL;

	a->numFrames = frames;

	if ( (a->frames = malloc(frames*sizeofpointer)) == NULL ) { free(a); return NULL; }

	hdc = GetDC(windowH);

	for(i=0;i<frames;i++) {

		bmp = LoadBitMap(windowH,hdc,files[i]);

		a->frames[i] = MakeDCBM(hdc,bmp);

		DeleteObject(bmp);
	}

	ReleaseDC(windowH,hdc);

	a->size.x = a->size.y = 0;

	for(i=0;i<frames;i++) {
		
		if ( a->frames[i] == NULL ) {
			FreeDCBMA(a);
			return NULL;
		} else {

		if ( a->frames[i]->size.x > a->size.x )
			a->size.x = a->frames[i]->size.x;
		if ( a->frames[i]->size.y > a->size.y )
			a->size.y = a->frames[i]->size.y;

		}

	}

return a;
}

void DrawDCBMA( HWND w, DCBMA *DCBMA, long x, long y )
{
int i;
HDC hdc;

	for (i=0;i<DCBMA->numFrames;i++) {
		hdc = GetDC(w);
		DrawDCBM(hdc,DCBMA->frames[i],x,y);
		ReleaseDC(w,hdc);

		await(50); /* wait a 20th of a second. very half-assed */
	}
}

void DrawDCBMAScaling( HWND w, DCBMA *DCBMA, long x, long y, long sizex, long sizey )
{
int i;
HDC hdc;

	for (i=0;i<DCBMA->numFrames;i++) {
		hdc = GetDC(w);
		DrawDCBMScaling(hdc,DCBMA->frames[i],x,y,sizex,sizey);
		ReleaseDC(w,hdc);

		await(50); /* wait a 20th of a second. very half-assed */
	}
}

void DrawDCBMAcenter( HWND w, DCBMA *DCBMA, long x, long y )
{
x -= DCBMA->size.x>>1;
y -= DCBMA->size.y>>1;
DrawDCBMA(w,DCBMA,x,y);
}

void DrawDCBMAcenterScaling( HWND w, DCBMA *DCBMA, long x, long y, long sizex, long sizey )
{
x -= sizex>>1;
y -= sizey>>1;
DrawDCBMAScaling(w,DCBMA,x,y,sizex,sizey);
}

void FreeDCBMA( DCBMA * dcbma )
{
int i;

	if ( !dcbma ) return;

	for (i=0;i<dcbma->numFrames;i++) {
		if ( dcbma->frames[i] ) FreeDCBM(dcbma->frames[i]);
	}
	free(dcbma->frames);
	free(dcbma);

}


void DrawBitMap( HDC hdc, HBITMAP bitmap, long x, long y )
{
    BITMAP      bitmapbuff;
    HDC         memorydc;
    POINT       origin;
    POINT       size;

	if ( ! bitmap ) return;

    memorydc = CreateCompatibleDC( hdc );
    SelectObject( memorydc, bitmap );
    SetMapMode( memorydc, GetMapMode( hdc ) );
    GetObject( bitmap, sizeof( BITMAP ), (LPSTR) &bitmapbuff );

    origin.x = x;
    origin.y = y;
    size.x = bitmapbuff.bmWidth;
    size.y = bitmapbuff.bmHeight;

    DPtoLP( hdc, &origin, 1 );
    DPtoLP( memorydc, &size, 1 );

    BitBlt( hdc, origin.x, origin.y, size.x, size.y, memorydc, 0, 0, SRCCOPY);
    DeleteDC( memorydc );

} /* DrawBitmap */
 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看日韩精品| 国产色产综合色产在线视频| 日韩一级高清毛片| 国产精品素人一区二区| 亚洲午夜av在线| av在线不卡网| 日韩免费性生活视频播放| 亚洲视频在线观看一区| 日韩av在线播放中文字幕| 91麻豆免费视频| 国产视频不卡一区| 国模娜娜一区二区三区| 欧美日本一道本在线视频| 亚洲国产精品ⅴa在线观看| 美国十次综合导航| 欧美另类videos死尸| 最好看的中文字幕久久| 懂色一区二区三区免费观看| 日韩精品一区在线| 日韩av网站免费在线| 欧美日韩国产美女| 一区二区高清视频在线观看| 成人精品高清在线| 中文字幕va一区二区三区| 久久国产综合精品| 欧美mv和日韩mv的网站| 五月天亚洲精品| 在线不卡免费欧美| 日韩综合小视频| 56国语精品自产拍在线观看| 亚洲v中文字幕| 欧美日韩成人综合天天影院| 亚洲午夜激情网页| 欧美日韩午夜在线| 视频在线观看91| 欧美一区三区二区| 蜜臀精品久久久久久蜜臀| 日韩午夜av一区| 国产美女一区二区| 国产精品欧美极品| 一本大道久久a久久精品综合| 综合欧美一区二区三区| 色综合久久天天| 亚洲r级在线视频| 欧美一级淫片007| 国产一区二区伦理片| 国产清纯在线一区二区www| 成人综合在线网站| 亚洲女子a中天字幕| 欧美性受xxxx黑人xyx性爽| 日韩精品亚洲专区| 久久亚洲精华国产精华液 | 亚洲一区在线看| 欧美精品欧美精品系列| 精品亚洲欧美一区| ...中文天堂在线一区| 欧美亚洲禁片免费| 激情图片小说一区| 亚洲色图19p| 欧美电视剧免费观看| 国产成人午夜高潮毛片| 91精品国产综合久久精品app| 久久综合狠狠综合久久综合88| 欧美在线啊v一区| 欧美精品亚洲一区二区在线播放| 久久久亚洲精品一区二区三区| 18成人在线视频| 美日韩一区二区| 一本色道久久综合亚洲精品按摩| 欧美刺激脚交jootjob| 国产精品久久久99| 麻豆一区二区三区| 欧美性受xxxx黑人xyx性爽| 国产夜色精品一区二区av| 日韩精品1区2区3区| 色婷婷av一区二区三区大白胸| 久久婷婷综合激情| 爽爽淫人综合网网站| 色哟哟一区二区三区| 国产女同性恋一区二区| 另类调教123区| 正在播放一区二区| 亚洲一区视频在线观看视频| 波多野结衣视频一区| 久久久久久久一区| 久久超碰97人人做人人爱| 欧美日本高清视频在线观看| 夜夜嗨av一区二区三区网页| 成a人片亚洲日本久久| 国产色产综合产在线视频| 精品写真视频在线观看| 欧美一卡在线观看| 日韩电影在线观看一区| 欧美嫩在线观看| 香蕉久久一区二区不卡无毒影院| 国产日韩三级在线| 精品一区二区国语对白| 日韩久久精品一区| 青青草97国产精品免费观看 | 国内精品久久久久影院色| 欧美日韩国产片| 亚洲国产精品一区二区久久| 91蜜桃免费观看视频| 99久久久久免费精品国产 | www.亚洲色图.com| 精品国产青草久久久久福利| 天天综合日日夜夜精品| 91成人在线免费观看| 一级女性全黄久久生活片免费| 在线观看网站黄不卡| 亚洲国产乱码最新视频 | 久久网这里都是精品| 国精产品一区一区三区mba视频| 26uuu欧美| 国产成人激情av| 亚洲国产精品t66y| 91亚洲精品久久久蜜桃网站| 亚洲一区二区三区四区不卡| 欧美精品色一区二区三区| 日韩高清在线观看| 精品电影一区二区三区| 成人午夜电影网站| 一区二区三区国产精华| 宅男噜噜噜66一区二区66| 久久精品国产在热久久| 国产欧美日韩精品一区| av网站免费线看精品| 亚洲一区二区成人在线观看| 91麻豆精品国产91久久久更新时间| 蜜桃精品视频在线观看| 亚洲国产成人自拍| 在线观看国产一区二区| 亚洲高清免费观看| 精品国产一区二区精华| 91丨porny丨首页| 男女性色大片免费观看一区二区| 久久精品欧美日韩| 欧美三级视频在线| 国产91高潮流白浆在线麻豆| 亚洲国产综合色| 国产色产综合色产在线视频| 日本丶国产丶欧美色综合| 久久av老司机精品网站导航| 亚洲丝袜制服诱惑| 亚洲精品少妇30p| 欧美色偷偷大香| 国产精品一线二线三线精华| 一区二区三区精品| 国产亚洲精品福利| 欧美性受极品xxxx喷水| 国产不卡在线视频| 日韩av在线播放中文字幕| 亚洲猫色日本管| 久久精品亚洲国产奇米99| 在线不卡欧美精品一区二区三区| av在线一区二区三区| 久久se精品一区精品二区| 亚洲激情综合网| 中文字幕欧美日韩一区| 日韩美女一区二区三区四区| 在线视频一区二区免费| 国产a区久久久| 国产一区二区三区综合| 日韩一区精品视频| 亚洲亚洲人成综合网络| 国产精品精品国产色婷婷| 精品va天堂亚洲国产| 5566中文字幕一区二区电影 | 麻豆91精品视频| 夜夜嗨av一区二区三区| 中文av一区二区| 国产日本欧美一区二区| 久久久一区二区| 日韩午夜在线播放| 91.com视频| 欧美日韩一级二级三级| 日本久久一区二区三区| 99国产精品国产精品毛片| 粉嫩蜜臀av国产精品网站| 国产毛片精品一区| 国产精品18久久久久久久久久久久| 毛片av一区二区| 久久成人av少妇免费| 久久国产尿小便嘘嘘尿| 欧美aaa在线| 蜜桃久久av一区| 精彩视频一区二区三区| 久久99精品国产.久久久久久| 蜜臀精品久久久久久蜜臀| 日本亚洲三级在线| 蜜桃视频一区二区| 久久国产综合精品| 国精产品一区一区三区mba桃花| 蜜臀av在线播放一区二区三区| 日韩电影在线观看电影| 蜜桃在线一区二区三区| 精品午夜久久福利影院 | 韩国av一区二区三区四区 | 一区二区国产盗摄色噜噜| 亚洲制服丝袜在线|