日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

framebuffer 保存 bmp图片格式

發布時間:2025/3/21 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 framebuffer 保存 bmp图片格式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近需要完成一個從framebuffer中進行讀取,然后將內存的東西保存為bmp圖片格式,我的其他博客內容對framebuffer進行詳細的講解,以及bmp的格式進行詳細的講解。

??? 之前從網上看到了一些保存bmp圖片的代碼,在本地執行都會出現問題,本人就進行了自己編寫,可以指定文件的文件名和文件類型

?? 也可以從github中獲取源碼:

直接看代碼:https://github.com/Guazhen/Framebuffer_shot



[cpp]?view plaincopy
  • #include?<linux/fb.h>??
  • #include?<stdio.h>??
  • #include?<stdint.h>???
  • #include?<fcntl.h>??
  • #include?<sys/mman.h>??
  • #include?<sys/ioctl.h>???
  • #include?<getopt.h>??
  • #include?<strings.h>??
  • #include?<unistd.h>??
  • typedef?unsigned?short?WORD;??
  • typedef?unsigned?int?DWORD;??
  • typedef?unsigned?long?LONG;??
  • ??
  • typedef?struct?tagBITMAPFILEHEADER?{??
  • ????WORD?bfType;??
  • ????DWORD?bfSize;??
  • ????WORD?bfReserved1;??
  • ????WORD?bfReserved2;??
  • ????DWORD?bfOffBits;???
  • }?__attribute__((packed))?BITMAPFILEHEADER;??
  • ??
  • ??
  • typedef?struct?tagBITMAPINFOHEADER??
  • {??
  • ????DWORD?biSize;?/*info?header?size?in?bytes*/??
  • ????DWORD?biWidth;?/*widht?of?image*/??
  • ????DWORD?biHeight;/*height?of?image*/??
  • ????WORD?biPlanes;/*number?of?colour?planes*/???
  • ????WORD?biBitCount;/*bits?per?pixel*/??
  • ????DWORD?biCompression;/*compression?type*/??
  • ????DWORD?biSizeImage;/*image?size?meter*/??
  • ????DWORD?biXPelsPerMeter;/*pixels?per?meter*/??
  • ????DWORD?biYPelsPerMeter;/*pexels?per?meter*/??
  • ????DWORD?biClrUsed;/*number?of?colour*/??
  • ????DWORD?biClrImportant;/*important?colour*/??
  • }?__attribute__((packed))?BITMAPINFOHEADER;??
  • ??
  • int?output_file;??
  • int?type_file;??
  • ??
  • struct?fb_fix_screeninfo?finfo;??
  • struct?fb_var_screeninfo?vinfo;??
  • ??
  • static?const?struct?option?long_options[]=????
  • {????
  • ?????{"output",1,NULL,'o'},????
  • ?????{"t",1,NULL,'t'},??????
  • ?????{NULL,0,NULL,0}????
  • };???
  • ??
  • static?void?usage(void)????
  • {????
  • ????fprintf(stderr,????
  • ????????????"imax6?[option]...\n"????
  • ????????????"??-o|--output???????????????Output?the?filename.\n"????
  • ????????????"??-t|--type???????????????Output?the?type?of?thefilename.\n"??
  • ????????????"??-h|--help???????????????help?information.\n"??
  • ???????????);????
  • };??
  • ??
  • ??
  • static?void?image_bmp(?const?char?*filename)??
  • {??
  • ????printf("starting?bmp..\n");??
  • ????char?tmpbufilename[126]?=?{0};??
  • ????if(?NULL?!=?filename)??
  • ????{??
  • ????????strcpy(tmpbufilename,?filename);??????????????????
  • ????????strcat(tmpbufilename,".bmp");??
  • ????}else??
  • ????{??
  • ????????strcpy(tmpbufilename,"screen.bmp");??
  • ????}??
  • ??????
  • ????FILE?*fp;??
  • ????BITMAPFILEHEADER????bmfh;??
  • ????????BITMAPINFOHEADER????bmih;??
  • ??
  • ????????((unsigned?char?*)&bmfh.bfType)[0]?=?'B';??
  • ????????((unsigned?char?*)&bmfh.bfType)[1]?=?'M';??
  • ??
  • ????????bmfh.bfSize?=??sizeof(BITMAPFILEHEADER)?+?sizeof(BITMAPINFOHEADER)?+?vinfo.yres?*?vinfo.xres?*?4;??
  • ????????bmfh.bfReserved1?=?0;??
  • ????????bmfh.bfReserved2?=?0;??
  • ????????bmfh.bfOffBits?=?sizeof(BITMAPFILEHEADER)?+?sizeof(BITMAPINFOHEADER);??
  • ??
  • ????????bmih.biSize?=?sizeof(BITMAPINFOHEADER);??
  • ??
  • ????????bmih.biWidth?=?vinfo.xres;??
  • ????????bmih.biHeight?=?vinfo.yres;??
  • ????????bmih.biPlanes?=?1;??
  • ????????bmih.biBitCount?=?32;??
  • ????????bmih.biCompression?=?0;??
  • ????????bmih.biSizeImage?=?0;?/*說明圖像的大小,以字節為單位。當用BI_RGB格式時,總設置為0*/??
  • ????????bmih.biXPelsPerMeter?=?0;?/*缺省值*/??
  • ????????bmih.biYPelsPerMeter?=?0;??
  • ????????bmih.biClrUsed?=?0;?/*說明位圖實際使用的調色板索引數,0:使用所有的調色板索引*/??
  • ????????bmih.biClrImportant?=?0;?/*說明對圖像顯示有重要影響的顏色索引的數目,如果是0,表示都重要*/??
  • ??
  • ????printf("tmpbufilename?=?%s\n",tmpbufilename);??
  • ??
  • ????????FILE*?image_file?=?fopen(tmpbufilename,"a");??
  • ????if(?NULL?==?image_file)??
  • ????{??
  • ????????printf("image?fopen?fail\n");??
  • ????}??
  • ??
  • ????????fwrite(&bmfh,?sizeof(BITMAPFILEHEADER),1,image_file);??
  • ????????fwrite(&bmih,?sizeof(BITMAPINFOHEADER),1,image_file);??
  • ??
  • ????????FILE?*raw_file?=?fopen(?"test.raw","rb");??
  • ????if(?NULL?==?raw_file)?????
  • ????{??
  • ????????printf("rawfile?fopen?fail..\n");??
  • ????}??
  • ??????
  • ??????
  • ????/*?
  • ????fgetc是一種計算機語言中的函數。意為從文件指針stream指向的文件中讀取一個字符,讀取一個字節后,光標位置后移一個字節。格式:int?fgetc(FILE?*stream);?
  • ????*/??
  • ?????
  • ????????//int?ch?=?fgetc(raw_file);??
  • ????int?ch?=?getc(raw_file);??
  • ??????
  • ????/*?
  • ?
  • ????for(y?=?0;?y?<?vinfo.yres;?y+)?
  • ????{???
  • ????????for(x?=?0;?x?<?vinfo.xres;?x++)???
  • ????????{???
  • ????????????long?location?=?(x?+?vinfo.xoffset)?*?(vinfo.bits_per_pixel/8)?+?(y?+?vinfo.yoffset)?*?finfo.line_length;??????????????
  • ????????????write(image_file,?fbp?+?location,?4);???
  • ????????}???
  • ????}????
  • ????*/??
  • ????int?x,?y;??
  • ????for(?y?=?vinfo.yres?-?1;?y?>=?0;?y--)??
  • ????{??
  • ????????for(x?=?0;?x?<?vinfo.xres;?x++)??
  • ????????{??
  • ????????????/*字節數*/??
  • ????????????long?location?=?(x?+?vinfo.xoffset)?*?(vinfo.bits_per_pixel/8)?+?(y?+?vinfo.yoffset)?*?finfo.line_length;??
  • ????????????fseek(raw_file,?location,?SEEK_SET);??
  • ????????????ch?=?fgetc(raw_file);??
  • ????????????fputc(ch,image_file);??
  • ??
  • ????????????ch?=?fgetc(raw_file);??
  • ????????????fputc(ch,image_file);??
  • ??
  • ????????????ch?=?fgetc(raw_file);??
  • ????????????fputc(ch,image_file);??
  • ??
  • ????????????ch?=?fgetc(raw_file);??
  • ????????????fputc(ch,image_file);???
  • ????????}??
  • ????}??
  • ????/*?
  • ????while(?ch?!=?EOF)?
  • ????????{?
  • ????????ch?=?fgetc(raw_file);?
  • ????????????????fputc(ch,image_file);?
  • ?????????
  • ????????ch?=?fgetc(raw_file);?
  • ????????????????fputc(ch,image_file);?
  • ?
  • ????????ch?=?fgetc(raw_file);?
  • ????????????????fputc(ch,image_file);?
  • ?
  • ????????ch?=?fgetc(raw_file);?
  • ????????????????fputc(ch,image_file);?????????????????
  • ????????}*/??
  • ??
  • ????????fp?=?popen("rm?./test.raw","r");??
  • ????????pclose(fp);??
  • ??
  • ????fclose(raw_file);??
  • ????fclose(image_file);??
  • ????printf("ending?bmp\n");??
  • }??
  • ??
  • int?main(int?argc,?char?**argv)??
  • {??
  • ????int?opt?=?0;??
  • ????int?options_index?=?0;??
  • ????char?*tmp?=?NULL;??
  • ????char?filename[126]?=?{0};??
  • ????char?type[126]?=?{0};??
  • ??
  • ????if(argc?==?1)??
  • ????{??
  • ????????usage();??
  • ????????return?2;?????
  • ????}??
  • ????/*?解析命令行參數*/??
  • ????while((opt=getopt_long(argc,argv,"o:t:h?",long_options,&options_index))!=EOF?)????
  • ????{????
  • ????????switch(opt)????
  • ????????{??????
  • ????????????case?'o':???
  • ????????????????output_file=1;??
  • ????????????????sprintf(filename,"%s",optarg);??
  • ????????????????break;????
  • ????????????case?'t':???
  • ????????????????type_file=1;??
  • ????????????????sprintf(type,"%s",optarg);??
  • ????????????????break;?????
  • ????????????case?'h':????
  • ????????????case?'?':???
  • ????????????????usage();return?2;break;????
  • ????????}????
  • ????}??
  • ??????
  • ??
  • ????int?fb_fd?=?open("/dev/fb0",O_RDWR);??
  • ????if(fb_fd?==?-1)??
  • ????{??
  • ????????printf("open?fail..\n");??
  • ????????return?-1;??
  • ????}??
  • ??
  • ??
  • ????ioctl(fb_fd,?FBIOGET_VSCREENINFO,?&vinfo);??
  • ????ioctl(fb_fd,?FBIOGET_FSCREENINFO,?&finfo);??
  • ??
  • ????long?screensize?=?vinfo.yres_virtual?*?finfo.line_length;??
  • ????FILE?*fp?=?popen("bash?./test.sh","r");???
  • ????pclose(fp);??
  • ??
  • ????//bmp???
  • ????if(?output_file?&&?type_file?)??
  • ????{??
  • ????????if(?!strcmp(type,"bmp"))??????
  • ????????{??
  • ????????????image_bmp(filename);??
  • ????????}else?if(?!strcmp(type,"png"))??
  • ????????{??
  • ????????????printf("png?type?=?%s\n",type);??
  • ????????}??
  • ????????else??
  • ????????{??
  • ????????????printf("unkown\n");??
  • ????????}??
  • ??????
  • ????}?????
  • ????else??
  • ????{??
  • ????????usage();return?2;??
  • ????}??
  • ??
  • ????close(fb_fd);??
  • ??
  • ????return?0;??
  • } ?


  • [cpp]?view plaincopy
  • #include?<linux/fb.h>??
  • #include?<stdio.h>??
  • #include?<stdint.h>???
  • #include?<fcntl.h>??
  • #include?<sys/mman.h>??
  • #include?<sys/ioctl.h>???
  • #include?<getopt.h>??
  • #include?<strings.h>??
  • #include?<unistd.h>??
  • typedef?unsigned?short?WORD;??
  • typedef?unsigned?int?DWORD;??
  • typedef?unsigned?long?LONG;??
  • ??
  • typedef?struct?tagBITMAPFILEHEADER?{??
  • ????WORD?bfType;??
  • ????DWORD?bfSize;??
  • ????WORD?bfReserved1;??
  • ????WORD?bfReserved2;??
  • ????DWORD?bfOffBits;???
  • }?__attribute__((packed))?BITMAPFILEHEADER;??
  • ??
  • ??
  • typedef?struct?tagBITMAPINFOHEADER??
  • {??
  • ????DWORD?biSize;?/*info?header?size?in?bytes*/??
  • ????DWORD?biWidth;?/*widht?of?image*/??
  • ????DWORD?biHeight;/*height?of?image*/??
  • ????WORD?biPlanes;/*number?of?colour?planes*/???
  • ????WORD?biBitCount;/*bits?per?pixel*/??
  • ????DWORD?biCompression;/*compression?type*/??
  • ????DWORD?biSizeImage;/*image?size?meter*/??
  • ????DWORD?biXPelsPerMeter;/*pixels?per?meter*/??
  • ????DWORD?biYPelsPerMeter;/*pexels?per?meter*/??
  • ????DWORD?biClrUsed;/*number?of?colour*/??
  • ????DWORD?biClrImportant;/*important?colour*/??
  • }?__attribute__((packed))?BITMAPINFOHEADER;??
  • ??
  • int?output_file;??
  • int?type_file;??
  • ??
  • struct?fb_fix_screeninfo?finfo;??
  • struct?fb_var_screeninfo?vinfo;??
  • ??
  • static?const?struct?option?long_options[]=????
  • {????
  • ?????{"output",1,NULL,'o'},????
  • ?????{"t",1,NULL,'t'},??????
  • ?????{NULL,0,NULL,0}????
  • };???
  • ??
  • static?void?usage(void)????
  • {????
  • ????fprintf(stderr,????
  • ????????????"imax6?[option]...\n"????
  • ????????????"??-o|--output???????????????Output?the?filename.\n"????
  • ????????????"??-t|--type???????????????Output?the?type?of?thefilename.\n"??
  • ????????????"??-h|--help???????????????help?information.\n"??
  • ???????????);????
  • };??
  • ??
  • ??
  • static?void?image_bmp(?const?char?*filename)??
  • {??
  • ????printf("starting?bmp..\n");??
  • ????char?tmpbufilename[126]?=?{0};??
  • ????if(?NULL?!=?filename)??
  • ????{??
  • ????????strcpy(tmpbufilename,?filename);??????????????????
  • ????????strcat(tmpbufilename,".bmp");??
  • ????}else??
  • ????{??
  • ????????strcpy(tmpbufilename,"screen.bmp");??
  • ????}??
  • ??????
  • ????FILE?*fp;??
  • ????BITMAPFILEHEADER????bmfh;??
  • ????????BITMAPINFOHEADER????bmih;??
  • ??
  • ????????((unsigned?char?*)&bmfh.bfType)[0]?=?'B';??
  • ????????((unsigned?char?*)&bmfh.bfType)[1]?=?'M';??
  • ??
  • ????????bmfh.bfSize?=??sizeof(BITMAPFILEHEADER)?+?sizeof(BITMAPINFOHEADER)?+?vinfo.yres?*?vinfo.xres?*?4;??
  • ????????bmfh.bfReserved1?=?0;??
  • ????????bmfh.bfReserved2?=?0;??
  • ????????bmfh.bfOffBits?=?sizeof(BITMAPFILEHEADER)?+?sizeof(BITMAPINFOHEADER);??
  • ??
  • ????????bmih.biSize?=?sizeof(BITMAPINFOHEADER);??
  • ??
  • ????????bmih.biWidth?=?vinfo.xres;??
  • ????????bmih.biHeight?=?vinfo.yres;??
  • ????????bmih.biPlanes?=?1;??
  • ????????bmih.biBitCount?=?32;??
  • ????????bmih.biCompression?=?0;??
  • ????????bmih.biSizeImage?=?0;?/*說明圖像的大小,以字節為單位。當用BI_RGB格式時,總設置為0*/??
  • ????????bmih.biXPelsPerMeter?=?0;?/*缺省值*/??
  • ????????bmih.biYPelsPerMeter?=?0;??
  • ????????bmih.biClrUsed?=?0;?/*說明位圖實際使用的調色板索引數,0:使用所有的調色板索引*/??
  • ????????bmih.biClrImportant?=?0;?/*說明對圖像顯示有重要影響的顏色索引的數目,如果是0,表示都重要*/??
  • ??
  • ????printf("tmpbufilename?=?%s\n",tmpbufilename);??
  • ??
  • ????????FILE*?image_file?=?fopen(tmpbufilename,"a");??
  • ????if(?NULL?==?image_file)??
  • ????{??
  • ????????printf("image?fopen?fail\n");??
  • ????}??
  • ??
  • ????????fwrite(&bmfh,?sizeof(BITMAPFILEHEADER),1,image_file);??
  • ????????fwrite(&bmih,?sizeof(BITMAPINFOHEADER),1,image_file);??
  • ??
  • ????????FILE?*raw_file?=?fopen(?"test.raw","rb");??
  • ????if(?NULL?==?raw_file)?????
  • ????{??
  • ????????printf("rawfile?fopen?fail..\n");??
  • ????}??
  • ??????
  • ??????
  • ????/*?
  • ????fgetc是一種計算機語言中的函數。意為從文件指針stream指向的文件中讀取一個字符,讀取一個字節后,光標位置后移一個字節。格式:int?fgetc(FILE?*stream);?
  • ????*/??
  • ?????
  • ????????//int?ch?=?fgetc(raw_file);??
  • ????int?ch?=?getc(raw_file);??
  • ??????
  • ????/*?
  • ?
  • ????for(y?=?0;?y?<?vinfo.yres;?y+)?
  • ????{???
  • ????????for(x?=?0;?x?<?vinfo.xres;?x++)???
  • ????????{???
  • ????????????long?location?=?(x?+?vinfo.xoffset)?*?(vinfo.bits_per_pixel/8)?+?(y?+?vinfo.yoffset)?*?finfo.line_length;??????????????
  • ????????????write(image_file,?fbp?+?location,?4);???
  • ????????}???
  • ????}????
  • ????*/??
  • ????int?x,?y;??
  • ????for(?y?=?vinfo.yres?-?1;?y?>=?0;?y--)??
  • ????{??
  • ????????for(x?=?0;?x?<?vinfo.xres;?x++)??
  • ????????{??
  • ????????????/*字節數*/??
  • ????????????long?location?=?(x?+?vinfo.xoffset)?*?(vinfo.bits_per_pixel/8)?+?(y?+?vinfo.yoffset)?*?finfo.line_length;??
  • ????????????fseek(raw_file,?location,?SEEK_SET);??
  • ????????????ch?=?fgetc(raw_file);??
  • ????????????fputc(ch,image_file);??
  • ??
  • ????????????ch?=?fgetc(raw_file);??
  • ????????????fputc(ch,image_file);??
  • ??
  • ????????????ch?=?fgetc(raw_file);??
  • ????????????fputc(ch,image_file);??
  • ??
  • ????????????ch?=?fgetc(raw_file);??
  • ????????????fputc(ch,image_file);???
  • ????????}??
  • ????}??
  • ????/*?
  • ????while(?ch?!=?EOF)?
  • ????????{?
  • ????????ch?=?fgetc(raw_file);?
  • ????????????????fputc(ch,image_file);?
  • ?????????
  • ????????ch?=?fgetc(raw_file);?
  • ????????????????fputc(ch,image_file);?
  • ?
  • ????????ch?=?fgetc(raw_file);?
  • ????????????????fputc(ch,image_file);?
  • ?
  • ????????ch?=?fgetc(raw_file);?
  • ????????????????fputc(ch,image_file);?????????????????
  • ????????}*/??
  • ??
  • ????????fp?=?popen("rm?./test.raw","r");??
  • ????????pclose(fp);??
  • ??
  • ????fclose(raw_file);??
  • ????fclose(image_file);??
  • ????printf("ending?bmp\n");??
  • }??
  • ??
  • int?main(int?argc,?char?**argv)??
  • {??
  • ????int?opt?=?0;??
  • ????int?options_index?=?0;??
  • ????char?*tmp?=?NULL;??
  • ????char?filename[126]?=?{0};??
  • ????char?type[126]?=?{0};??
  • ??
  • ????if(argc?==?1)??
  • ????{??
  • ????????usage();??
  • ????????return?2;?????
  • ????}??
  • ????/*?解析命令行參數*/??
  • ????while((opt=getopt_long(argc,argv,"o:t:h?",long_options,&options_index))!=EOF?)????
  • ????{????
  • ????????switch(opt)????
  • ????????{??????
  • ????????????case?'o':???
  • ????????????????output_file=1;??
  • ????????????????sprintf(filename,"%s",optarg);??
  • ????????????????break;????
  • ????????????case?'t':???
  • ????????????????type_file=1;??
  • ????????????????sprintf(type,"%s",optarg);??
  • ????????????????break;?????
  • ????????????case?'h':????
  • ????????????case?'?':???
  • ????????????????usage();return?2;break;????
  • ????????}????
  • ????}??
  • ??????
  • ??
  • ????int?fb_fd?=?open("/dev/fb0",O_RDWR);??
  • ????if(fb_fd?==?-1)??
  • ????{??
  • ????????printf("open?fail..\n");??
  • ????????return?-1;??
  • ????}??
  • ??
  • ??
  • ????ioctl(fb_fd,?FBIOGET_VSCREENINFO,?&vinfo);??
  • ????ioctl(fb_fd,?FBIOGET_FSCREENINFO,?&finfo);??
  • ??
  • ????long?screensize?=?vinfo.yres_virtual?*?finfo.line_length;??
  • ????FILE?*fp?=?popen("bash?./test.sh","r");???
  • ????pclose(fp);??
  • ??
  • ????//bmp???
  • ????if(?output_file?&&?type_file?)??
  • ????{??
  • ????????if(?!strcmp(type,"bmp"))??????
  • ????????{??
  • ????????????image_bmp(filename);??
  • ????????}else?if(?!strcmp(type,"png"))??
  • ????????{??
  • ????????????printf("png?type?=?%s\n",type);??
  • ????????}??
  • ????????else??
  • ????????{??
  • ????????????printf("unkown\n");??
  • ????????}??
  • ??????
  • ????}?????
  • ????else??
  • ????{??
  • ????????usage();return?2;??
  • ????}??
  • ??
  • ????close(fb_fd);??
  • ??
  • ????return?0;??
  • } ?
  • 總結

    以上是生活随笔為你收集整理的framebuffer 保存 bmp图片格式的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 三级欧美韩日大片在线看 | 国产一级做a爱免费视频 | 最新国产黄色网址 | 国产午夜精品一区二区三区欧美 | 顶级尤物极品女神福利视频 | 一区二区导航 | 成人黄色av| 国产精品无码白浆高潮 | 精品香蕉一区二区三区 | 久色视频 | 午夜精品久久久久久久99热黄桃 | 亚洲红桃视频 | 超碰伊人网 | 精品亚洲精品 | 尹人香蕉 | 麻豆视频网站入口 | 国产成人三级在线 | 日韩天天干 | 在线观看av大片 | 成人综合色站 | 欧美黄色大片免费看 | 人禽l交视频在线播放 视频 | 69影院在线观看 | 性综艺节目av在线播放 | 国产精品色 | 国产97av | 国内av片| 国产在线观看www | 张柏芝亚洲一区二区三区 | 一级片在线免费观看 | 久久免费高清视频 | 成年人黄色网址 | 特黄aaaaaa私密按摩 | 国产婷婷色 | 国产日产欧美一区二区三区 | 欧美猛交免费 | 另类激情亚洲 | 日韩av在线直播 | 国产精品无码无卡无需播放器 | 性xxxx视频 | 国产微拍精品 | 亚洲欧美日韩久久 | 久久一级黄色片 | 成人a站 | 色综合天天综合 | 婷婷激情五月网 | 激情欧美一区二区三区 | 欧洲美女毛片 | 国产精品成人国产乱一区 | 亚洲国产一区二区三区四区 | chinese麻豆新拍video | 久久av红桃一区二区小说 | 一级片a级片 | 88av视频| 久草中文在线视频 | 美国一级特黄 | 奇米影视四色777 | 中文字幕第6页 | 欧美性猛交乱大交 | 黄色免费视屏 | 国语对白少妇spa私密按摩 | 欧美一区二区三区四区在线观看 | 三区在线 | 中文人妻av久久人妻18 | 日韩黄色在线播放 | 一级黄色a视频 | 99久久久| 欧美一区二区三区在线视频 | 99国产精品一区二区三区 | 国产视频一区在线 | 国产精品美女久久久久图片 | 亚洲情se | 亚洲午夜精品福利 | 欧洲免费毛片 | 成人日b视频 | 欧美成人一区二区 | 色倩网站 | 97香蕉久久夜色精品国产 | 少妇饥渴放荡91麻豆 | 自慰无码一区二区三区 | 极品少妇一区二区三区 | 国产午夜精品久久久久 | 日韩视频精品 | 日本一区视频在线观看 | 国产一区二区三区成人 | 欧美99久久精品乱码影视 | 成人免费视频观看视频 | 超碰77 | 国产一级免费观看 | 中文字幕丰满乱子伦无码专区 | 国产三级第一页 | 国产尤物av| 欧美猛男gaygay| 91社区视频 | 美女的诞生免费观看在线高清 | 同人动漫在线观看 | 日韩欧美国产另类 | 强行无套内谢大学生初次 | 福利所第一导航 |