精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

前端生成海報圖技術選型與問題解決

開發
本篇文章主要聚焦海報圖分享這個形式,探討純前端在H5&小程序內,合成海報到下載到本地、分享至社交平臺整個流程中可能遇到的問題,以及如何解決。

一、引言

絕大多數的電商平臺都會設計分享裂變的功能,激勵用戶進行分享,這是一種拉新促活的常見措施。提到分享裂變,就免不了需要生成用戶專屬的分享鏈接或者專屬海報。當然分享推廣的形式多種多樣,有文本鏈接、網頁鏈接、圖片邀請碼、小程序、音視頻等等。

本篇文章主要聚焦海報圖分享這個形式,探討純前端在H5&小程序內,合成海報到下載到本地、分享至社交平臺整個流程中可能遇到的問題,以及如何解決。

二、選型參考

2.1 實現方式

根據海報圖生成渠道的差異,可以將海報圖生成分為:客戶端生成、前端生成和服務端生成,以下是從技術實現、兼容性、生成速度和功能受限四個維度進行的對比:

圖片

  • 對于排版復雜的場景: 建議使用服務端Node.js渲染的方式【如Puppeteer圖片生成】;
  • 對于排版簡單,但用戶請求并發大的場景:建議使用前端或客戶端生成海報圖;
  • 對于需多端投放,樣式動態更新的場景:建議使用前端生成海報圖;
  • 對于疊加用戶交互的場景:建議使用客戶端原生繪制的方式生成。

本篇文章著重聚焦前端H5 & 小程序內生成海報圖的技術實現,如果大家對服務端、客戶端生成海報圖的方案感興趣,文末有相關鏈接可供參考。

2.2 H5 生成海報圖技術選型

H5 生成海報圖常推薦的方案有三種:

(1)html2canvas:基于頁面中存在且可用的DOM結構、樣式,構建“截圖”,繪制到canvas畫布中。

下面是html2canvas的技術解析,詳細講解可以參考文末鏈接。

圖片

(2)dom-to-image:將DOM 節點序列化為XML,包裝到SVG中,再轉為圖片。

下面是dom-to-image的技術解析,詳細講解可以參考文末鏈接。

圖片

(3)canvas 純原生繪制

以下是示例代碼,這里不做贅述

圖片

html2canvas和dom-to-image都是用于在canvas的基礎上封裝的庫,由于底層實現方式的不同,它們各有優缺點,以下是從幾個維度進行的優缺點對比。

圖片

那么如何快速的確認當前的項目應該用哪個組件庫呢,有沒有必要逐個去驗證,這里給到幾點建議:

  • 如果需要處理的頁面比較復雜或者需要支持SVG圖片渲染,在html2canvas中可能更好一些。
  • 如果需要穩定的文字、圖片渲染能力或者處理結構化數據的能力,在dom-to-image中可能更好一些。
  • 如果頁面基本是圖片資源,那么使用原生canvas性能是最好的。

2.3 小程序生成海報圖技術選型

與H5類似,小程序生成海報圖在項目中常用的也有三種方案:

(1)wxml-to-canvas:利用微信小程序提供的canvas組件,將指定的wxml轉化成canvas繪圖,然后再將其導出為圖片

詳見:微信小程序wxml-to-canvas官方文檔

圖片

(2)Painter:利用JSX語法,將繪圖的操作轉化成繪制命令,并生成對應的canvas繪圖

下圖來源于Painter 2.0官方介紹

圖片

(3)Canvas/Canvas2D

以下是小程序2D Canvas 官方示例代碼,詳見微信小程序基礎能力/畫布

圖片


  • 從技術實現上看,wxml-to-canvas 是基于2d類型的Canvas組件能力,對基礎庫有要求,需在2.7.0以上。在canvas2d的基礎上,封裝了繪制text、image和view的能力,提供wxml繪制到canvas和導出圖片的方法。Painter不僅支持2d類型的canvas,同時兼容了低版本canvas組件。同時支持更多復雜樣式的繪制,對于網絡素材實現了一套LRU存儲機制,無需重復下載圖片,并增加了容錯機制。
  • 從使用方法上看,wxml-to-canvas使用相對較簡單,只需要在小程序中引入wxml-to-canvas庫,然后傳入需要生成海報圖的wxml代碼和畫布的寬高即可。而Painter需要在小程序中使用類JSX的語法繪制所有圖形,覆蓋小程序頁面中相應的canvas組件。

針對兩種不同庫,wxml-to-canvas更適合將已有的wxml結構轉換為圖片,對于復雜的定制化設計需要在wxml中拼接、排版的海報來說,并不是最佳選擇。Painter則更適合在小程序中進行復雜繪制操作。

但從另一個角度看,如果對繪制性能要求比較高的業務來說,wxml-to-canvas 相比Painter更符合訴求。當然,如果僅涉及圖片間的快速組合,也可以使用canvas原生繪制的能力,只是要關注圖像繪制和canvas導出的實際問題。

前面兩個章節,主要解決在繪制選型上的疑慮,下一步面對的就是如何解決實現過程中出現的問題。

三、H5 常見問題

3.1  設計還原效果

設計還原除了關注最基礎的字體樣式、排版,同時也要兼顧深色模式適配、字號大小適配、頁面縮放、瀏覽器兼容性。這些因素無疑給前端生成海報圖帶來巨大的壓力,下面我也將從提到的這些方面進行展開,也可以作為大家選型參考或者解決方案的參考。

當業務需求涉及復雜的文本排版,那么建議直接放棄canvas原生繪制,難度大風險大耗時長。第三方庫處理邏輯大同小異,本質上都是基于DOM 轉為 canvas,但并不是真正的瀏覽器截圖,都會存在一些共性問題。

3.1.1 字體樣式

如下圖所示,當前設備生效的是特殊字體,那么生成海報圖得到的有可能是特殊字體,出現與設計不符,不同用戶生成的海報圖效果不一致的情況。

圖片

如何規避這個問題呢?復制DOM并隱藏,對復制的DOM嵌入網絡字體包,保證設計效果。如果是固定文案,也可以采用嵌入圖片的方式。

3.1.2 排版

排版常遇到的問題是文本換行、超長字符打點,通常也會疊加系統字號大小、頁面縮放一起出現。

圖片

問題1: 文本換行打點怎么辦?

  • 第三方庫中一般會有文本換行相關的處理
    類似html-to-canvas它的處理基于"CanvasRenderingContext2D.measureText()",在繪制時測量每個字符的寬度,進行渲染位置的更新。基于這個處理方案,超長字符打點的問題是很難解決的。
    而dom-to-canvas是基于svg轉圖片的方式,天然的具有文本排版處理的能力,這也是這個庫的優勢所在。

問題2: 那如果疊加頁面縮放呢?

一般h5都具有頁面縮放適配的能力,復制DOM也會繼承該處理,不會有太大的影響。

問題3: 如果頁面有設置大字號模式,DOM在不同字號大小下展示樣式有區別,但是需要導出圖片樣式保持一致呢?

那么就需要在復制DOM時,針對字號大小進行逆向處理,比如系統字體將字號放大1.25倍,在該場景下,復制DOM時就需要對字號進行縮小1.25倍。

3.1.3 適配

深色模式適配,分為兩種:

  • 一種是系統級別的反色:系統級別的反色不會侵入到DOM,復制的DOM仍然與淺色模式下一致,導出的圖片也不會受到影響。
  • 一種是自定義樣式的反色:自定義的反色對DOM樣式有侵入,復制DOM及其樣式,導出的圖片可能受影響,如下圖所示。只需要在復制DOM時將侵入的樣式或者控制深色模式的判斷條件去除即可。

圖片

兼容性適配,與canvas和foreignObject的兼容性相關,一般來說,不建議在Android低版本中使用,性能較差。

3.2   跨域問題

只要使用canvas繪制圖片,必然繞不過的就是跨域的問題,解決跨域問題有以下幾種思路:

  1. 代理服務器:通過配置服務器代理,將原本跨域的圖片請求轉為同域的圖片請求。從根源上解決跨域問題。針對圖片來源單一可控的場景、具備代理配置的能力的業務場景,建議采用該方案。
  2. 解決資源跨域:前提需要有權限訪問被請求的跨域服務器,可以通過設置服務器上的 CORS頭信息“Access-Control-Allow-Origin: *  或者特定域名”來實現,然后再解決資源的跨域問題。下面就聚焦這個場景,展開介紹下:

3.2.1 crossOrigin

在請求圖片時,需要增加屬性 img.crossOrigin = 'anonymous' ,告知跨域服務器,本次請求可以匿名訪問,不需要提供憑證。代碼示例如下圖所示:

圖片

設置這個就可以一勞永逸了嗎,并不是,還可能出現圖片緩存引起的請求跨域問題:在同一個頁面中,如果canvas需要繪制的圖片已經加載過了,瀏覽器會默認緩存下來,當canvas使用這張圖片時,瀏覽器會直接返回緩存的圖片。這時被緩存后的圖片就不展示CORS請求響應頭攜帶Access-Control-Allow-Origin的要求了,就會導致報錯。

解決方案最簡單的是給跨域請求追加時間戳,但這個方案會造成資源重復請求,也可能會有緩存擊穿的風險。

3.2.2 ajax+Blob/base64

通過額外發一次請求,將圖片轉為blob或者直接用base64的圖片格式,避免單張圖片頻繁請求。但如果涉及到的圖片比較多,也會帶來內存壓力問題,需要注意資源及時釋放。代碼示例如下圖所示:

圖片

3.3  生成性能

  1. 控制復制DOM的數量 原因:海報圖的生成耗時與復制dom的數量成正比。
  2. 如果采用的是iframe啟用的方式,減少iframe啟動次數。
  3. 一般組件庫是基于一個DOM生成一張海報圖,如果一次需要生成多張海報圖,可以合并DOM,啟用一次iframe,批量生成多張圖片。
  4. 分割操作,將文本相關耗時的操作前置,最后簡單的圖片+圖片的合并,使用canvas原生繪制,也是一種提升性能的方案。

四、小程序常見問題

4.1 元素繪制

不論是使用哪種方案,在小程序繪制海報圖時,需要提前設定好繪制的尺寸,甚至wxml-to-canvas要求為每個元素設置固定的寬度和高度,否則會出現布局錯誤。所以自適應高度在小程序端是不存在的,對于排版樣式就進行了初步限定。

同時,元素之間是存在層級關系的,與書寫的結構強關聯,這個要尤為注意。

對于元素及其樣式的支持是有限的,不同庫的支持程度也是不一致的,可根據業務進行選擇,這里簡單舉例對比下:

圖片

4.2 存儲問題

以下是wxml-to-canvas的源碼,在繪制圖片時,往往是繪制網絡圖片,需要從遠程拉取圖片,轉為本地臨時文件存儲【wx.downloadFile】,canvas繪制取臨時文件地址【tempFilePath】,然后進行繪制。保存圖片時再將canvas導出為臨時文件【wx.canvasToTempFilePath】。

圖片

若在小程序內觸發保存圖片到本地【wx.saveImageToPhotosAlbum】,需要進行權限校驗,這部分需要業務自行處理,如下所示。

圖片

如果選擇使用Painter庫繪制海報圖,且為了提升性能開啟了LRU存儲機制,這時就要關注緩存文件的有效性,官方也在小程序 LRU 存儲設計中進行了重點講解。

4.3 生成性能

研究過Painter源碼的同學可能關注到在canvas導出圖片的函數中,存在一個300ms的延遲,這個是為什么呢?300ms這個延遲可以去掉嗎?

圖片

答案是:這個邏輯下不可以省略!否則可能出現圖片缺失的問題。

Painter提供了canvas2d 接口和canvas舊接口兩套邏輯,而延遲300ms出現在舊接口邏輯體系中。這是因為舊接口使用的是downloadFile將網絡圖片緩存到本地后再進行drawImage,而整個繪制-導出過程中沒有監聽圖片加載完成的步驟,因此有概率出現圖片未加載完成就直接繪制的情況,進而出現內容缺失。雖然加入了定時器延長時間,但不同的機器不同的圖片繪制時間不同,設定單一的延遲等待并不能從根本上解決問題,反而影響生成圖片的性能。

相應的,在canvas2d的體系中則可以通過 Canvas.createImage 創建圖片對象,并監聽圖片的load事件,在回調之后執行ctx.drawImage繪制到canvas中,這樣就可以有效的解決上述問題。

針對這種場景,如果有其他比較好的解決方案,歡迎讀者在評論區留言。

ps: 微信官方正在推出Skyline/snapshot的截圖組件,也可以實現wxml/wxss導出圖片的功能,詳見微信小程序Skyline /snapshot

五、思考總結

本文主要聚焦前端生成海報圖的技術選型,不同選型可能出現的問題及其解決思路。期望通過本篇文章,能夠讓讀者在接收到相關需求時,對于一些容易踩坑的點做好前期評估。如果當前正在開發相關的需求,遇到相似的問題能夠提供一些解決思路。

同時如果大家有更好的解決方案,歡迎在評論區留言。

當然,隨著AI技術的發展,生成海報圖可能不再需要通過代碼邏輯實現。可以通過數據模型訓練,更加智能化的快速生成營銷海報圖,那么以上的問題將不再是問題。我們也將持續關注在ToC業務中相關的實現方案,與大家一起探討。

參考連接:

  1. html2canvas實現瀏覽器截圖的原理(包含源碼分析的通用方法)
  2. 前端關于html2canvas截圖的問題?
  3. 使用html2canvas在前端生成圖片
責任編輯:龐桂玉 來源: vivo互聯網技術
相關推薦

2009-03-06 10:10:00

廣播風暴網絡

2011-06-27 16:44:59

Qmake

2011-06-13 16:16:32

Qt 中文問題

2010-04-28 18:01:15

Unix系統

2010-06-17 11:35:24

Ubuntu 修復Gr

2011-06-14 13:41:27

muleWSDL

2011-04-29 10:18:34

投影機

2011-11-28 22:45:19

Nginxsession

2009-12-28 10:56:45

WPF Image

2010-05-05 10:25:24

Unix操作系統

2011-01-21 14:13:10

2012-05-09 10:08:41

跨機房

2010-05-05 14:20:46

AIX CDE

2023-11-07 18:56:05

2010-03-30 16:04:34

Linux Nginx

2011-08-01 17:50:28

Xcode

2010-07-29 15:28:47

Flex安全沙箱

2009-06-30 14:02:00

Struts亂碼Eclipse

2011-08-16 13:34:23

Objective-C歸檔

2009-07-17 14:33:05

Jython中文問題
點贊
收藏

51CTO技術棧公眾號

美女隐私在线观看| www.av成人| 特黄毛片在线观看| 2022国产精品视频| 国产精品稀缺呦系列在线| 91香蕉一区二区三区在线观看| 日韩三级av高清片| 欧美性猛交xxx| 永久久久久久| 天天操天天操天天操| a91a精品视频在线观看| 亚洲人成伊人成综合网久久久 | 欧美日韩午夜精品| 潘金莲一级淫片aaaaaa播放1| 欧美 日韩 中文字幕| 日韩国产欧美三级| 欧美华人在线视频| 亚洲区自拍偷拍| 99国产精品久久一区二区三区| 欧美午夜电影在线| 青青视频免费在线| www亚洲人| 成人sese在线| 91影视免费在线观看| 亚洲精品男人的天堂| 日韩av二区| 日韩成人在线视频网站| 亚洲成人av免费观看| 欧美xxx网站| 亚洲午夜精品在线| 国产高清精品软男同| 青春有你2免费观看完整版在线播放高清 | 久久成人av网站| 97人妻精品一区二区免费| 中文无码日韩欧| 欧美高清你懂得| 成人免费xxxxx在线视频| 国产精品一区hongkong| 成人欧美一区二区三区黑人麻豆 | 亚洲国产视频直播| 黄色一级片网址| 91电影在线播放| 久久久久久影视| 狠狠久久综合婷婷不卡| 成人av无码一区二区三区| 精品午夜久久福利影院 | 亚洲成a人片777777久久| 色综合久久久久久久| 91成人综合网| 欧美人与牲禽动交com| 亚洲乱码国产乱码精品精的特点| 亚洲7777| aaa在线观看| 国产精品天干天干在线综合| 奇米影视首页 狠狠色丁香婷婷久久综合 | 亚洲黄色www| 亚洲视频在线播放免费| 成人av资源网址| 亚洲精品一区二区三区精华液| 日本少妇激三级做爰在线| 国模大尺度视频一区二区| 欧美久久久久中文字幕| 成人免费黄色av| 亚洲精品黑牛一区二区三区| 日韩三级在线免费观看| 亚洲最大视频网| 99久久婷婷国产综合精品青牛牛| 精品女同一区二区| 精品视频站长推荐| 日韩欧美国产大片| 日韩国产在线播放| 免费看黄色的视频| 日韩av大片| 欧美大码xxxx| 日韩成人在线免费视频| 六月婷婷一区| 国产欧美日韩免费| 国产视频手机在线观看| 高清成人免费视频| 久久国产精品亚洲va麻豆| 毛片网站在线| 中文字幕在线不卡| 天堂8在线天堂资源bt| 交100部在线观看| 一本大道久久a久久综合婷婷| 99久久久无码国产精品6| gogo亚洲高清大胆美女人体| 欧美三级日韩三级| 91视频免费入口| 日韩av三区| 亚洲精品自拍偷拍| 国产传媒免费在线观看| 亚洲成人原创| 国产99久久久欧美黑人 | 精品嫩草影院久久| 中国女人特级毛片| 欧美成人午夜| 国产a∨精品一区二区三区不卡| 97超碰资源站| 91亚洲国产成人精品一区二三| 日韩免费电影一区二区| 日本在线视频www鲁啊鲁| 日韩欧美在线免费| 日本一本在线视频| 国产成人精品三级高清久久91| 色午夜这里只有精品| 亚洲精品在线观看av| 日韩高清在线观看| 成人综合色站| 思思99re6国产在线播放| 亚洲图片一区二区| 国产精品久久久毛片| 国产精品久久久网站| 尤物tv国产一区| 免费看日韩毛片| 国产资源精品在线观看| 欧美日韩成人一区二区三区| 午夜av在线免费观看| 欧洲精品在线观看| 艳妇乳肉亭妇荡乳av| 97视频热人人精品免费| 琪琪第一精品导航| 男人天堂综合网| 成人免费在线播放视频| av网址在线观看免费| 成人看片黄a免费看视频| 正在播放国产一区| 久久99精品波多结衣一区| 国产精品99久久久久| 日韩在线观看电影完整版高清免费| 91在线三级| 欧美一区二区三区四区五区| 成人免费视频入口| 三级久久三级久久| 久久久精品动漫| 啦啦啦中文在线观看日本| 在线不卡免费欧美| 亚洲女同二女同志奶水| 久久经典综合| 麻豆精品视频| 欧美男男tv网站在线播放| 日韩精品专区在线| 翔田千里88av中文字幕| 精品一区二区在线看| 性欧美videosex高清少妇| av免费在线一区| 亚洲欧美日本精品| 欧美男人亚洲天堂| 久久久电影一区二区三区| 青青艹视频在线| 日韩精品丝袜美腿| 欧美一区二区三区免费观看| 无码国产色欲xxxx视频| 精品国产乱码久久久久久天美 | 日本一道高清一区二区三区| 性色av一区二区三区在线观看| 亚洲精品综合网| 亚洲一区二区中文在线| 亚洲熟女乱综合一区二区三区| 亚洲二区免费| 久久国产精品99久久久久久丝袜| 亚洲人成午夜免电影费观看| 亚洲欧美一区二区精品久久久| 免费看一级视频| 欧美经典一区二区三区| 污版视频在线观看| 中文无码久久精品| 国产精品免费区二区三区观看 | 成人久久18免费网站图片| 免费在线看黄色| 日韩三级电影网址| www.99re7.com| 久久午夜免费电影| 手机在线成人免费视频| 亚洲欧美综合| 精品国产免费一区二区三区| 日韩av大片站长工具| 色老头一区二区三区| www.亚洲欧美| 欧美午夜宅男影院在线观看| 中文字幕伦理片| 国产麻豆欧美日韩一区| 丰满少妇久久久| 国产伦精品一区二区三区视频 | 欧美高清无遮挡| 视频一区二区免费| 欧美在线free| 久久久久成人网站| 久久久久88色偷偷免费| 国产欧美激情视频| 亚洲视频成人| 欧美性视频在线播放| 久久草在线视频| 国产精自产拍久久久久久| 少妇av在线| 亚洲色图13p| 精品久久久久久亚洲综合网站| 精品免费在线视频| 精品一区二区在线观看视频| 不卡影院免费观看| 在线黄色免费看| 亚洲精选一区| 五月天色婷婷综合| 亚洲免费观看高清完整版在线观| 成人春色激情网| 丝袜老师在线| 欧美大尺度激情区在线播放 | 久久国产精品亚洲| 免费污视频在线一区| 精品调教chinesegay| 国产精品久久久久久久久久久久久久久久久久 | 欧美一级特黄视频| 综合欧美一区二区三区| 国产呦小j女精品视频| 国产很黄免费观看久久| 亚洲视频在线观看一区二区三区| 欧美日韩蜜桃| 亚洲va韩国va欧美va精四季| 美女一区二区在线观看| 91在线免费看网站| 91精品美女| 欧洲s码亚洲m码精品一区| 亚洲电影视频在线| 色偷偷91综合久久噜噜| 毛片在线能看| 日韩精品视频在线| 成人乱码一区二区三区 | 成人网18免费网站| 欧美福利精品| 日本亚洲不卡| 久久99久久精品国产| 91精品啪在线观看国产手机 | 97公开免费视频| 中文久久精品| 蜜臀av无码一区二区三区| 一区二区电影在线观看| 亚洲蜜桃av| 欧美日中文字幕| 日韩亚洲视频在线| 亚洲福利网站| 欧美国产一区二区在线| 色爱av综合网| 免费影院在线观看一区| 中文字幕精品影院| 免费中文日韩| 亚洲人成网亚洲欧洲无码| 精品视频第一区| 日韩啪啪网站| 欧美少妇一区| 欧美一区二区三区高清视频| 日韩三级电影| 日韩理论片av| 性欧美.com| 91精品综合| 8x8ⅹ国产精品一区二区二区| 久久久久久久久国产一区| 国产成人精品免费看在线播放| 91精品国产成人观看| 日本a级片在线观看| 欧美视频成人| 又大又硬又爽免费视频| 亚洲人成免费| 日本一本二本在线观看| 日韩专区欧美专区| 奇米影视四色在线| 激情偷乱视频一区二区三区| 伦伦影院午夜理论片| 成人h动漫精品一区二区| 中文字幕人妻一区二区三区| 91伊人久久大香线蕉| 亚洲精品视频网址| 亚洲欧洲日韩女同| 久久久全国免费视频| 精品福利一区二区| 国产精品成人无码| 欧美一区二区在线视频| 日韩在线一区二区三区四区| 亚洲欧美福利视频| 午夜毛片在线| 久久露脸国产精品| 忘忧草在线www成人影院| 国产中文字幕91| 成人精品毛片| 亚洲国产婷婷香蕉久久久久久99| 一本到12不卡视频在线dvd| 免费超爽大片黄| 日韩精品免费专区| av在线网站免费观看| 91欧美一区二区| 可以免费看av的网址| 亚洲国产精品久久久久秋霞影院 | 爱啪视频在线观看视频免费| 日av在线播放中文不卡| 精品乱码一区二区三区四区| av噜噜色噜噜久久| 红桃成人av在线播放| 亚洲av综合色区| 欧美在线综合| 久久久久亚洲av无码麻豆| 久久久www成人免费无遮挡大片| 日本黄色片免费观看| 五月天亚洲精品| 国产一区二区在线视频聊天| 亚洲精品av在线播放| 国产精品久久麻豆| 欧洲亚洲女同hd| 超碰cao国产精品一区二区| 视频一区二区三| 亚洲少妇在线| 在线播放第一页| 中文字幕一区二区三区在线观看| 六月丁香在线视频| 日韩欧美一区二区视频| av在线电影免费观看| 欧美精品videos性欧美| **日韩最新| 日韩精品一区二区三区四区五区| 亚洲无线一线二线三线区别av| 日韩在线不卡一区| 久久精品在线免费观看| 日韩免费一二三区| 欧美一区二区视频观看视频| 超碰国产在线观看| 欧美一级黑人aaaaaaa做受| 秋霞影院一区| 中文字幕成人一区| 日韩二区三区四区| 国产中文字幕一区二区| 亚洲一级在线观看| 国产www视频| www.精品av.com| 电影一区电影二区| 青青草久久网络| 久久精品午夜| 美女洗澡无遮挡| 狠狠干狠狠久久| 天天躁日日躁狠狠躁喷水| 欧美国产乱视频| 一区二区三区在线资源| 日韩精品福利片午夜免费观看| 精品一区二区免费看| 影音先锋男人看片资源| 在线观看91视频| 成人综合影院| 国产精品久久久久久久久影视| 国产欧美日韩| 国产一线二线三线在线观看| 国产日本一区二区| 欧美超碰在线观看| 在线播放日韩精品| 国产资源一区| 中文字幕在线乱| 国内精品伊人久久久久av影院 | 在线观看国产三级| 五月天欧美精品| 日韩欧美电影在线观看| 欧美在线视频观看| 亚洲区小说区图片区qvod| 成人午夜激情av| 国产精品久久夜| 国产丝袜在线视频| 欧美激情欧美激情| 久久97精品| 久久婷婷国产精品| 国产精品久久网站| 99久久免费国产精精品| 久久久久国产一区二区三区| 豆花视频一区二区| 蜜臀av午夜一区二区三区| 中文字幕不卡的av| 99久久久无码国产精品免费| 97国产在线观看| 国产精品一区高清| 天天av天天操| 亚洲成av人**亚洲成av**| 毛片在线免费| 91在线视频精品| 亚洲精品乱码| 亚洲一级黄色录像| 日韩一二三区视频| 日韩精品极品| 在线观看国产一区| 国产suv精品一区二区三区| 国产成人亚洲精品自产在线| 国产小视频国产精品| 国产精一区二区| 久草热视频在线观看| 欧美激情在线一区二区三区| 国产三级自拍视频| 2019中文字幕在线| 99久久精品网| 91av在线免费| 欧美日本免费一区二区三区| 678在线观看视频| 亚洲欧美电影在线观看| 成人丝袜18视频在线观看| 成人一级免费视频| 久久久这里只有精品视频| 久久国产影院| 无码人妻aⅴ一区二区三区|