亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

Canvas圖片鏤空文字效果:從繪制原理到工程避坑指南

Canvas圖片鏤空文字效果:從繪制原理到工程避坑指南 先交代一個(gè)背景為什么我會(huì)去研究這個(gè)效果。之前做一個(gè)活動(dòng)頁(yè)面的視覺時(shí)設(shè)計(jì)師給的效果圖里整張產(chǎn)品大圖上壓了一層近黑的遮罩產(chǎn)品名像被刻刀挖出來(lái)一樣透出底下圖片的原始色彩。第一反應(yīng)是這東西得上 PS 切圖后來(lái)發(fā)現(xiàn) Canvas 幾十行代碼就能做而且做出來(lái)是矢量的、可動(dòng)態(tài)變化的、能直接導(dǎo)出高清圖片。這個(gè)效果在圈內(nèi)就叫“圖片鏤空文字”核心只有一個(gè) APIglobalCompositeOperation。這篇是寫給剛接觸 Canvas 的小白前端的。我會(huì)從圖層原理講起到跑通完整 Demo再把我實(shí)際上踩過(guò)的五個(gè)坑一個(gè)個(gè)拆開說(shuō)最后給點(diǎn)進(jìn)階玩法。你在很多教程里大概只會(huì)看到“設(shè)置globalCompositeOperation等于destination-out再fillText”這么一句但真正讓它穩(wěn)定好用藏在后面的像素密度、字體加載、跨域這些問(wèn)題才是這篇的重點(diǎn)。1. 先看效果再看原理鏤空字到底是怎么“摳”出來(lái)的1.1 一個(gè)圖層級(jí)的效果拆解“圖片鏤空文字”聽起來(lái)唬人拆開看其實(shí)就是三層結(jié)構(gòu)最底層一張完整的背景圖片通常是產(chǎn)品圖、風(fēng)景圖、人物圖中間層一個(gè)半透明或不透明的色塊壓住整張圖片用來(lái)制造明暗對(duì)比最上層文字區(qū)域里的像素被“拿掉”留下一個(gè)個(gè)字母或漢字的形狀窗口透過(guò)窗口能看到最底下的圖片原色。你可以把這個(gè)過(guò)程理解成做實(shí)體刻字先把照片平放在桌上蓋上一張黑色卡紙然后用刻刀沿著文字輪廓把卡紙摳掉。最后你看到的是黑色卡紙上被摳出來(lái)的字以及從字縫里透出來(lái)的照片。這種視覺在品牌 Banner、個(gè)人博客 Hero 區(qū)、作品集封面、電商大促海報(bào)里特別常見。它不需要設(shè)計(jì)師單獨(dú)切圖前端拿到任意一張高分辨率圖片寫上文案就能即時(shí)生成這正好是 Canvas 的強(qiáng)項(xiàng)。1.2 為什么用 Canvas 而不是 CSS mask 或 SVG先澄清一點(diǎn)這個(gè)效果不是只有 Canvas 能做。CSS 的mask屬性、SVG 的clipPath配合text都能實(shí)現(xiàn)。那為什么我最終推薦 Canvas方案優(yōu)點(diǎn)缺點(diǎn)Canvas像素級(jí)控制、可動(dòng)態(tài)繪圖、導(dǎo)出圖片方便、瀏覽器兼容性強(qiáng)需要自己處理高清屏、字體加載、文本換行CSS mask寫法最簡(jiǎn)單幾行樣式就能出效果部分移動(dòng)端 WebView 對(duì)mask的支持有幺蛾子且動(dòng)態(tài)切換和導(dǎo)出成品圖很麻煩SVG clipPath矢量清晰、文本排版能力強(qiáng)和位圖交互、逐幀動(dòng)畫、導(dǎo)出 PNG 這類操作繞來(lái)繞去不適合快速出圖實(shí)際項(xiàng)目里Canvas 最大的優(yōu)勢(shì)在于“后面還能怎么用”。你可以在鏤空文字的基礎(chǔ)上加動(dòng)畫、加鼠標(biāo)交互、改透明度、導(dǎo)出成宣傳圖一套代碼全搞定。CSS mask 做靜態(tài)沒問(wèn)題一旦需求變成“文字內(nèi)部透出的圖片要緩慢滾動(dòng)”就明顯不如 Canvas 靈活了。1.3 理解 Canvas 像素覆蓋與globalCompositeOperationCanvas 不像 PS 那樣有圖層面板它是一個(gè)巨大的像素矩陣。每次調(diào)用drawImage、fillRect、fillText都是在往這塊像素矩陣上畫畫。至于新畫的像素和舊像素怎么疊加由一個(gè)叫g(shù)lobalCompositeOperation的屬性控制。默認(rèn)情況下它是source-over意思就是“新內(nèi)容直接蓋在舊內(nèi)容上面”這也是大多數(shù)人認(rèn)識(shí)的 Canvas 行為。而destination-out的邏輯完全不同新繪制的區(qū)域會(huì)把舊像素“擦掉”讓那些位置變成透明。更精確地說(shuō)公式大概是舊像素保留值 (1 - 新繪制像素的alpha) * 舊像素也就是說(shuō)如果你用完全不透明的文字去觸碰畫布文字覆蓋過(guò)的舊像素全部歸零變透明如果你用半透明顏色去畫舊像素會(huì)被擦掉對(duì)應(yīng)比例。這個(gè)細(xì)節(jié)在后面講“文字太細(xì)/遮罩太淺”時(shí)很有用。有了這個(gè)認(rèn)識(shí)實(shí)現(xiàn)鏤空文字的順序就非常清晰了先畫圖片再畫遮罩色塊把合成模式改成destination-out在遮罩層上畫文字文字區(qū)域被擦除。順序一旦錯(cuò)了效果就會(huì)很怪。比如你先畫遮罩再畫圖片圖片會(huì)把遮罩蓋得嚴(yán)嚴(yán)實(shí)實(shí)或者你在畫圖片前就開了destination-out那第一步就把透明的畫布“擦”了個(gè)寂寞。Canvas 的繪制順序決定了最終的每一處像素。2. 第一版跑通圖片、字體、鏤空的完整 Demo2.1 最簡(jiǎn)環(huán)境不需要框架不需要打包工具一個(gè) HTML 文件就能跑。先準(zhǔn)備一張本地圖片比如product.jpg放到和 HTML 同目錄下這樣第一步就不用擔(dān)心跨域問(wèn)題——跨域這個(gè)坑我放在第 3 章專門講。給canvas一個(gè)固定顯示尺寸比如1200x500這是最簡(jiǎn)單的起步方式。后續(xù)第 3 章會(huì)告訴你為什么在 Retina 屏上這樣寫會(huì)糊。!DOCTYPE html html langzh-CN head meta charsetUTF-8 titleCanvas 圖片鏤空文字 Demo/title style #poster { display: block; width: 1200px; height: 500px; margin: 40px auto; /* 后續(xù)會(huì)講到高清屏適配這里先不設(shè)畫布物理寬高 */ } /style /head body canvas idposter/canvas script // 下面這段是核心代碼直接粘貼運(yùn)行 const canvas document.getElementById(poster); const ctx canvas.getContext(2d); // 給畫布設(shè)置內(nèi)部像素尺寸 canvas.width 1200; canvas.height 500; const img new Image(); // 換成你自己的圖片路徑建議和 HTML 同目錄 img.src ./product.jpg; img.onload () { // 第一步繪制背景圖片拉伸鋪滿整個(gè)畫布 ctx.drawImage(img, 0, 0, canvas.width, canvas.height); // 第二步畫遮罩色塊相當(dāng)于蓋一張半透明卡紙 ctx.fillStyle rgba(0, 0, 0, 0.85); ctx.fillRect(0, 0, canvas.width, canvas.height); // 第三步開啟“擦除模式” ctx.globalCompositeOperation destination-out; // 第四步繪制文字文字區(qū)域會(huì)被挖空 ctx.font 900 120px PingFang SC, Microsoft YaHei, sans-serif; ctx.textAlign center; ctx.textBaseline middle; ctx.fillText(DEV STORE, canvas.width / 2, canvas.height / 2); // 第五步恢復(fù)默認(rèn)合成模式防止后續(xù)繪制受影響 ctx.globalCompositeOperation source-over; }; /script /body /html2.2 代碼逐句拆解這段代碼就是整個(gè)效果的核心骨架。我挨句說(shuō)下背后的意圖。img.onload很重要。很多人一開始會(huì)直接在new Image()之后馬上drawImage結(jié)果畫布上什么都沒有。圖片是異步加載的沒等onload觸發(fā)就繪制等于畫了個(gè)寂寞。后面所有依賴圖片內(nèi)容的操作都應(yīng)該放在onload回調(diào)里。ctx.drawImage(img, 0, 0, canvas.width, canvas.height)這行用了四參數(shù)版本意思是把圖片強(qiáng)行拉伸填滿整個(gè)畫布。如果你想保持原始寬高比可以先把圖片等比縮放再居中繪制我建議第一版先跑通再看第 4 章怎么精細(xì)處理。fillStyle配合fillRect畫出遮罩層。這里我用了rgba(0, 0, 0, 0.85)也就是 85% 不透明度的黑色。遮罩透明度直接決定鏤空文字的醒目程度這一步后面也會(huì)展開說(shuō)。ctx.font一次性定義了字重、字號(hào)和字體族。需要注意Canvas 的字體設(shè)置必須寫在一行里不能像 CSS 那樣拆成font-size和font-family兩個(gè)屬性。而且如果使用自定義 Web 字體這里會(huì)有一個(gè)“字體還沒加載完就繪制”的坑第 3 章會(huì)說(shuō)解法。textAlign和textBaseline分別控制水平、垂直對(duì)齊方式都設(shè)為center和middle后fillText的坐標(biāo)點(diǎn)就是文字的正中心做居中排版最方便。最后把globalCompositeOperation恢復(fù)成source-over。這一步經(jīng)常被忽略后面會(huì)講它帶來(lái)的詭異現(xiàn)象。2.3 為什么順序不能亂如果把destination-out設(shè)置提前例如在fillRect之前開啟那遮罩層會(huì)被擦掉嗎不會(huì)因?yàn)椴脸氖恰耙延械呐f像素”。設(shè)置成destination-out之后后面繪制的所有內(nèi)容都會(huì)變成橡皮擦。如果在drawImage之前就開啟圖片存在嗎這時(shí)候畫布還是空的“擦除”自然沒效果。所以說(shuō)白了順序就是像素疊加的時(shí)間線。圖片先落到底層遮罩壓上去最后雕刻文字。這樣鏤空部分露出的才是圖片而不是網(wǎng)頁(yè)背景色。3. 避坑指南這五個(gè)坑基本小白都會(huì)踩這一節(jié)是整篇最有價(jià)值的部分。我從實(shí)際調(diào)試?yán)锇堰@些坑一個(gè)個(gè)撈出來(lái)每個(gè)都附帶現(xiàn)象、原因和解決方案。3.1 高清屏Retina模糊先處理像素密度現(xiàn)象同一個(gè) Demo 在普通 Windows 屏幕上看還好放到 MacBook 或高分屏手機(jī)上文字邊緣發(fā)虛圖片像蒙了一層霧。原因CSS 里width: 1200px決定的只是畫布在頁(yè)面上占據(jù)的邏輯尺寸而canvas.width 1200決定的是畫布內(nèi)部的物理像素?cái)?shù)量。在高分屏下一個(gè) CSS 像素實(shí)際上由多個(gè)物理像素組成瀏覽器為了讓 1200×500 的畫布鋪滿物理區(qū)域就硬把 1200 個(gè)像素放大渲染結(jié)果當(dāng)然是糊。解法const dpr window.devicePixelRatio || 1; // 物理像素 邏輯像素 * 設(shè)備像素比 canvas.width 1200 * dpr; canvas.height 500 * dpr; // 但 CSS 里仍然讓它顯示為 1200x500 canvas.style.width 1200px; canvas.style.height 500px; // 縮放 Canvas 的繪圖坐標(biāo)系之后所有繪制仍然按邏輯像素寫 ctx.scale(dpr, dpr);加上ctx.scale(dpr, dpr)之后后面所有drawImage、fillText的坐標(biāo)和尺寸都不用改仍然按 1200×500 來(lái)寫非常省心。3.2 跨域圖片導(dǎo)致 Canvas 被“污染”現(xiàn)象圖片畫出來(lái)了效果也正常但一執(zhí)行canvas.toDataURL()就報(bào)錯(cuò)Tainted canvases may not be exported。原因只要畫布上繪制過(guò)跨域圖片瀏覽器就會(huì)默認(rèn)這張畫布被污染為了保證安全不允許你導(dǎo)出圖像數(shù)據(jù)。如果你做的是靜態(tài)長(zhǎng)圖生成工具這個(gè)問(wèn)題會(huì)直接卡死功能。解法分兩步。第一步加載圖片前設(shè)置const img new Image(); // 必須設(shè)置在 src 之前 img.crossOrigin anonymous; img.src https://example.com/image.jpg;第二步保證圖片服務(wù)器返回了Access-Control-Allow-Origin響應(yīng)頭。如果后端是 CDN 或?qū)ο蟠鎯?chǔ)一般可以在控制臺(tái)配置如果服務(wù)器不是你管的那就只能通過(guò)同域代理轉(zhuǎn)發(fā)圖片把跨域變成同域。3.3 自定義字體沒加載成系統(tǒng)字體現(xiàn)象我在代碼里清清楚楚寫了font: 900 120px Inter結(jié)果畫出來(lái)的卻是宋體或微軟雅黑效果和設(shè)計(jì)師稿完全不是一回事。原因字體加載是異步的。Web 字體可能還沒下載完Canvas 就開始繪制了此時(shí)它只能回退到系統(tǒng)字體。這個(gè)問(wèn)題在 CSS 里不明顯因?yàn)轫?yè)面渲染有一個(gè)字體回退的糾正過(guò)程但 Canvas 畫出來(lái)的像素一旦落地字體加載完成后也不會(huì)自動(dòng)重繪。解法// 先讓瀏覽器加載目標(biāo)字體 if (document.fonts document.fonts.load) { await document.fonts.load(900 120px Inter); await document.fonts.ready; } // 字體加載完再執(zhí)行繪制 ctx.font 900 120px Inter, sans-serif; ctx.fillText(DEV STORE, canvas.width / 2, canvas.height / 2);如果用了多個(gè)字體或字號(hào)最好把常用的幾條規(guī)則都load一遍。注意await必須放在異步函數(shù)或async回調(diào)里如果整體代碼是img.onload啟動(dòng)的把onload寫成async就可以。3.4globalCompositeOperation忘記還原后續(xù)繪制互相干擾現(xiàn)象鏤空效果做出來(lái)了但你在后面再畫一個(gè)普通矩形或按鈕發(fā)現(xiàn)它們?nèi)肯Щ蜃兂赏该髟趺凑{(diào)都不對(duì)。原因globalCompositeOperation是一個(gè)有記憶的狀態(tài)。你把它設(shè)成destination-out之后如果不改回來(lái)后續(xù)每一個(gè)繪制操作都會(huì)進(jìn)入“擦除模式”把畫布上已有的內(nèi)容擦掉。這種 bug 特別隱蔽因?yàn)槟阒豢串?dāng)前一幀有點(diǎn)像一旦重新繪制就很奇怪。解法如果不希望被狀態(tài)污染用save和restore包裹也是不錯(cuò)的選擇。下面的寫法更清晰效果也一樣ctx.save(); ctx.globalCompositeOperation destination-out; ctx.fillText(DEV STORE, ...); ctx.restore();save()會(huì)存下當(dāng)前所有狀態(tài)restore()一次性恢復(fù)。我的項(xiàng)目習(xí)慣是凡是修改了合成模式、陰影、變換矩陣且這段代碼和后續(xù)繪制邏輯邊界明顯就用save/restore包起來(lái)少一次手滑少十分鐘排查。3.5 文字過(guò)細(xì)或遮罩過(guò)淺鏤空效果看不清現(xiàn)象同樣的代碼英文粗體效果好得很換成中文筆畫多的字或者用的字體字重不足鏤空區(qū)域變得若隱若現(xiàn)遮罩蓋得不夠深文字和圖片混在一起。原因鏤空文字能看清依賴的是“文字窗口”和“周圍色塊”之間足夠的明暗反差。如果筆畫太細(xì)鏤空出來(lái)的像素面積太小視覺信息密度不夠如果遮罩透明度低于 70%中間的明暗差也不足以形成“刻字”的感覺。解法字體優(yōu)先選擇 700 以上字重font里寫900或bold字號(hào)盡量放大至少 60px 起步字越小越容易糊遮罩用rgba(0, 0, 0, 0.75)以上或者干脆用不透明色塊再靠背景圖片的邊界給畫面增加層次如果文字筆畫確實(shí)細(xì)可以先給文字加一層描邊彌補(bǔ)這個(gè)我在第 4 章會(huì)講具體方式。4. 效果細(xì)節(jié)打磨居中、多行文字、描邊和陰影的取舍4.1 精確居中的幾種方式最簡(jiǎn)單的方式就是第 2 章用過(guò)的textAlign: center和textBaseline: middle然后fillText坐標(biāo)直接寫畫布中心。這個(gè)組合適配絕大多數(shù)單行文字場(chǎng)景。但還有一種場(chǎng)景你想讓文字左邊對(duì)齊某條邊又想讓它垂直居中或者在一張多區(qū)域廣告圖上精確控制每個(gè)文字的錨點(diǎn)。這時(shí)可以借助measureText量出寬度const metrics ctx.measureText(DEV STORE); const textWidth metrics.width; // 假設(shè)要讓文字水平居中那么起始 x 坐標(biāo)就是 const startX (canvas.width - textWidth) / 2; ctx.fillText(DEV STORE, startX, canvas.height / 2);measureText還返回實(shí)際像素寬度在需要做“文字到底有沒有超出畫布”這類校驗(yàn)時(shí)最有用。Canvas 里沒有g(shù)etBBox之類的 DOM 概念所有寬度判斷都靠它。4.2 多行文字的分行處理Canvas 的fillText不支持自動(dòng)換行也不會(huì)識(shí)別\n來(lái)斷行。想輸出多行文字思路是按\n拆分然后逐行繪制每行的高度遞增。function drawWrappedText(ctx, text, x, y, maxWidth, lineHeight) { const lines String(text).split(\n); lines.forEach((line, index) { ctx.fillText(line, x, y index * lineHeight); }); } // 使用 drawWrappedText(ctx, 第一行\(zhòng)n第二行, canvas.width / 2, canvas.height / 2, 600, 70);如果你還需要“按寬度自動(dòng)折行”也就是文字太長(zhǎng)自動(dòng)在單詞或漢字之間斷開那得先二分字符寬度判斷再切割代碼會(huì)長(zhǎng)一些。對(duì)于小白階段建議先在服務(wù)端或編輯器里排好文案再傳給 Canvas手動(dòng)用\n控制每行長(zhǎng)度就行。我做過(guò)幾個(gè)海報(bào)生成項(xiàng)目都是這個(gè)方案穩(wěn)定且好維護(hù)。4.3 給鏤空字加描邊strokeText的正確時(shí)機(jī)需求經(jīng)常會(huì)變成“鏤空字外面還要有一圈邊線不然字在亮色區(qū)域里辨識(shí)度不夠”。這時(shí)候順序和合成模式要一起處理好。正確的順序是// 第一步挖空文字 ctx.save(); ctx.globalCompositeOperation destination-out; ctx.font 900 120px sans-serif; ctx.textAlign center; ctx.textBaseline middle; ctx.fillText(DEV STORE, canvas.width / 2, canvas.height / 2); ctx.restore(); // 第二步恢復(fù)普通繪制模式畫描邊 ctx.strokeStyle #ffffff; ctx.lineWidth 4; ctx.font 900 120px sans-serif; ctx.textAlign center; ctx.textBaseline middle; ctx.strokeText(DEV STORE, canvas.width / 2, canvas.height / 2);關(guān)鍵點(diǎn)在于先打開destination-out用fillText把文字區(qū)域掏空然后恢復(fù)source-over再用strokeText畫描邊。這樣描邊線是畫在遮罩層表面的不會(huì)把鏤空區(qū)域重新填死。如果你順序反了先strokeText再fillText挖空描邊會(huì)被連同文字一起擦掉一部分邊緣斷斷續(xù)續(xù)。4.4 陰影在destination-out下的奇怪行為這絕對(duì)是新手最容易忽略的坑。想象你在做鏤空字的同時(shí)加一個(gè)文字陰影ctx.shadowColor rgba(255, 255, 255, 0.8); ctx.shadowBlur 20; ctx.globalCompositeOperation destination-out; ctx.fillText(DEV STORE, ...);結(jié)果你會(huì)發(fā)現(xiàn)不僅文字被挖掉了文字周圍的陰影區(qū)域也被挖掉了一片整個(gè)鏤空區(qū)域邊緣出現(xiàn)一層朦朧的“半透明白洞”視覺上非常臟。原因在destination-out模式下fillText繪制的內(nèi)容包含陰影和模糊產(chǎn)生的半透明像素這些像素也會(huì)作為“雕刻刀”的一部分參與擦除。也就是說(shuō)你想要的陰影效果根本沒機(jī)會(huì)顯示反而變成了多余的空洞。我的處理建議如果一定需要陰影就不要在同一個(gè) Canvas 上用destination-out完成。更穩(wěn)妥的是用兩層 Canvas一層負(fù)責(zé)輸出鏤空基底另一層疊加陰影光暈或者干脆放棄陰影改用描邊和漸變來(lái)替代層次感。項(xiàng)目里 90% 的情況下你會(huì)覺得描邊比陰影更干凈。5. 進(jìn)階玩法讓鏤空字活起來(lái)、能導(dǎo)出5.1 動(dòng)態(tài)效果圖片流動(dòng)的文字窗口鏤空字的底層圖片不一定要靜止。我們可以讓圖片在文字窗口后面緩慢滾動(dòng)視覺上像是透過(guò)窗戶看外面的風(fēng)景。思路很簡(jiǎn)單把繪制抽成一個(gè)函數(shù)用requestAnimationFrame持續(xù)更新drawImage的裁剪位置。drawImage的九參數(shù)版本可以從原圖中截取一塊繪制到畫布上let offset 0; function render() { ctx.clearRect(0, 0, canvas.width, canvas.height); // 從原圖上截取一塊移動(dòng)的窗口 ctx.drawImage( img, offset, 0, 600, canvas.height, // 原圖裁剪區(qū)域 0, 0, canvas.width, canvas.height // 繪制到畫布的整塊 ); // 遮罩 鏤空文字的代碼和之前一致 ctx.fillStyle rgba(0, 0, 0, 0.85); ctx.fillRect(0, 0, canvas.width, canvas.height); ctx.globalCompositeOperation destination-out; ctx.font 900 120px sans-serif; ctx.textAlign center; ctx.textBaseline middle; ctx.fillText(DEV STORE, canvas.width / 2, canvas.height / 2); ctx.globalCompositeOperation source-over; offset 1; if (offset img.width - 600) offset 0; requestAnimationFrame(render); }requestAnimationFrame每幀執(zhí)行時(shí)都會(huì)先清空畫布再重新繪制圖片和遮罩。這樣文字窗口是靜止的底層圖片緩緩掃過(guò)一種高級(jí)的動(dòng)態(tài)海報(bào)就出來(lái)了。注意offset遞增的幅度決定了滾動(dòng)速度1 到 2 是比較柔和的感覺。5.2 交互鼠標(biāo)移動(dòng)改變遮罩透明度另一個(gè)很常見的交互鼠標(biāo)移動(dòng)到文字區(qū)域附近時(shí)遮罩透明度降低讓圖片更清晰地透出來(lái)移開后恢復(fù)原狀。實(shí)現(xiàn)上只需監(jiān)聽mousemove更新一個(gè)全局變量然后在每一幀重新渲染時(shí)使用新的透明度。let hoverStrength 0.85; canvas.addEventListener(mousemove, (event) { const rect canvas.getBoundingClientRect(); const x event.clientX - rect.left; const y event.clientY - rect.top; // 判斷是否在文字中心范圍附近這只是一個(gè)簡(jiǎn)單示例 const dist Math.hypot(x - canvas.width / 2, y - canvas.height / 2); if (dist 150) { hoverStrength 0.35; } else { hoverStrength 0.85; } render(); });render函數(shù)里把fillStyle中的透明度改成${hoverStrength}就行。這種處理方式的好處是鏤空區(qū)域本身不變只有周圍遮罩的深淺在變化產(chǎn)生一種“燈光聚焦文字”的感覺。5.3 導(dǎo)出成品圖把 Canvas 轉(zhuǎn)成圖片下載活動(dòng)頁(yè)面做完往往還要生成一張宣傳圖或海報(bào)圖供下載。Canvas 原生支持導(dǎo)出function downloadPoster() { // 第 3 章說(shuō)過(guò)跨域圖片不解決這里會(huì)報(bào) tainted 錯(cuò)誤 const url canvas.toDataURL(image/png); const link document.createElement(a); link.download poster.png; link.href url; link.click(); }有一個(gè)細(xì)節(jié)值得注意canvas.toDataURL()導(dǎo)出的尺寸是畫布的物理像素尺寸。如果做過(guò)第 3 章的 DPR 適配導(dǎo)出的圖片物理分辨率會(huì)更大反而更適合直接做宣傳圖。導(dǎo)出的 PNG 是完全透明的鏤空區(qū)域嗎是的透明部分在圖片里會(huì)以透明通道保存放到任何背景色上都能繼續(xù)融合。如果希望導(dǎo)出的是白色背景圖可以在導(dǎo)出前臨時(shí)把背景畫成白色導(dǎo)出后再重新繪制回原樣。這個(gè)花活經(jīng)常用在海報(bào)工具里保存下來(lái)的圖片貼到文檔里不會(huì)黑乎乎一片。我個(gè)人在實(shí)際操作中的體會(huì)是Canvas 做鏤空效果方向本身不難難的是把上面這些邊緣問(wèn)題一次性考慮周全。先把一個(gè)基礎(chǔ) Demo 跑通再把 DPR、字體、跨域、合成模式這幾個(gè)點(diǎn)按順序處理好后面加動(dòng)效、加導(dǎo)出都是順?biāo)浦鄣氖?。如果這篇文章能幫你少走幾條彎路那目的就達(dá)到了。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
免费观看有码高清视频| 亚洲啪啪综合?v一区综合精品区| 日本ZZ高免费A级视频| 18禁久久| 男女激情黄色网址| 亚洲综合情色| 国产精品ⅴ无码大片在线看.| 婷婷深爱五月| 日韩啪啪啪视频| 粉嫩av在线| 色97| 上床啊啊啊| 亚洲av综合色区图片亚洲| 亚 欧 美 综合| 91色欧美| 又黑又大又粗| 蜜臀久久99精品久久久久| 一区在线国产播放| 久久熟女嫩草成人片免费| 日本色日夜干| 国产精品网站www| 9999久久久| 婷婷综合| 日本孕妇一区二区视频操逼免费看| 一区二区激情国产熟女| 午夜精品久久99蜜桃的功能章节| 丁香六月婷婷久久综合| 香蕉综合网| 亚洲欧美大香蕉| 久久久久熟女| 夜夜嗨一区二区| 一区二区三区不卡视频| 第四色色综合91| 久操视频在线观看| 18一区二区三区| PMv在线观看| 天天综合-91入口| 懂色天天爱天天日天天射天天澡| 嗯嗯啊啊的视频| 久久精品国产亚洲AV片多多| 久久一区二区加油站| 69综合网| 尤物网站91| 色五月综合| 久久尹人大香焦视| 精品射1999| 韩国免费播放一级毛片| 99热99re超碰精品| 国产精品嫩草影院免费| 免费视频观看60秒| 日日夜夜干| 中文字幕97| 日本一区二区电影网站| 日韩黄色av中文字幕| 青青操少妇| 欧美综合娱乐久久| 91成人无码| 九一屌逼| 五月天婷精品激情| 亚洲一区二区三区在线激情| 操老熟女AV| 久久久久久久人妻| 天天视频黄| 亚洲精品不卡一二三区| 极品色社| 97人妻免费中文字幕| 亚洲 中文 欧美 日韩 在线| 综合色图,成人综合网| 国内毛片欧美香蕉精品| 久9爱精品| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 国产av激情无码久久天堂| 人人超碰在线观看黄| 日韩无码成人电影| 欧美精品精品一区二区| 91男人天堂网| 日日夜夜草草草| 日本性爱少妇| 亚洲精品白浆高清久久久久久| 偷拍色图| 日日日啊啊啊| 国产在线精品偷| 立川理惠被中出无码| 中文字幕人妻丝袜| 亚洲色图欧美视频| 男插女青青影院| 啪一啪免费视频| 亚洲图片小说欧洲| 欧美一品道| 国产视频三区四区| 水澄无码AV| AV污污污污| 人人妻人人玩人人澡人人爽| 秋霞男人网| 先锋精品av色鲁| 国产一进一出视频网站| 五月丁香黄色网| 啊啊啊啊好疼视频| 97玖玖超碰| 久久久久免费少妇| 人妻熟女av国产网站| 性色av一区二区| 免费观看日本操逼视频| 一二三区精品视频| 999国产精品999久久久久久| 97超碰国产精品| 日本男人插女人的逼黄色| 蜜臀久久一区二区| 麻豆久久视频在线地址| 欧美啪啪女女| 国产视频一区二区三区在线免费观看| 欧美欧美啪啪视频| 91欧美在线| 9久9久| 91美女視頻| 97超碰天天| 水野优香在线观看| 久久五月视频| 亚洲激情AV| 日韩不卡毛片Av免费高清| 高潮毛片无遮挡高清免费| 精品人妻一区二区三区蜜桃视频| 97天天在线| 亚洲图片 激情小说| 蜜臀AV成人精品蜜臀AV久久| 亚洲第一色页夜| 嗯嗯啊啊亚欧精品| 鸥美插入视频| 久啪| 亚洲综合 欧美| 天天天天天天天天综合| 欧美亚洲日韩16色| juliaann丝袜大战黑鬼| 精品女同一区| 欧美激情精品久久久久久| 日本最新1区2区3区| 青青草成人视频在线观看二区| 牛牛AV人人夜夜澡人人爽| 777超碰| 欧综合网| 大香蕉综合网| 久久久免费视频18| 91夜色| 日本一区不卡| 天天看精品动漫视频一区| 午夜传煤十二区精品| 91精品网站| 亚洲成成熟女人综合一区二区| 国产午夜福利合集| 日本操逼视频免费| 新久久AV| 大香蕉AV在线| 久久25| 99久在线精品99re8a| 亚州日韩97| 后入式视频国产自| 成人五月天丁香激情综合| 亚洲色图欧美色图日韩色图| 熟女人妻一区二区三区免费看 | 丁香五月综合| 久久国99999| 四虎AV影视国产精品亚洲精品| 乱伦系列一区二区| 国产精品女同| 国产免费久久精品99re韩国| 欧美日韩人妻精品一区二区三区| 密臀在线视频| 在线亚洲 欧美 日本专区| 日韩无码黄色片| 亚洲成人美女无吗| 久久超碰爱| 日本精品免费一区二区三区四区| 欧美性五月| 啊啊啊啊啊在线| 人人操人人摸人人看人人干| 麻豆精品久久久久久久| 久久亚洲熟妇在线视频| 日曰骚久久精品| 国产在线观看一区二区三区| 亚洲精品一区二区三区在线播放| 国产亚洲 中文欧美久久| 色男人色天堂东京热| 亚洲97资源| 国产亚洲福利第一页丝袜| 国产精品国产自产高清AV| 婷婷五月天激情网| 日日夜夜青青草母狗| a级免费在线观看| 伊人9| 清纯唯美综合亚洲| 国产操逼网站亚洲一级黄色| 性一交一乱一交A片久久四色| 午夜情侣自拍网站| 骚妻少妇精品性色无码四色A V| 夜夜欢天天干| 国产 亚洲 丝袜 制服| 99精品久久| 天天看高清麻豆| 老熟女综合网| av片在线观看免费播放| 91国产丝袜美女| 少妇综合| 色婷婷电影网| 91高清欧美| 黄色av网站在线播放| 2010男人的天堂| 欧美国产操逼| 少妇一区二区三区高速| 欧美无圣光在线| 欧美日综合| 男女激烈网站最新| 久悠悠av| 精品人妻一区| 国产欧美在线观看免费观看| 99久久网站| 亚洲男人的天堂网| 男人女人18禁片免费看网站| 亚洲精品丝袜| 亚洲国产精品无石码久久 | 婷婷五月天补不补| 91久热| 成人麻豆av电影网站| 天天香香欲综合| 亚洲日韩精品一区二区| 97操操| 久久久九| 69精品久久久久中文字幕| 裸模AV女优| 无码操逼视频一下| 乱码熟妇人妻久久久| 欧美少妇人妻| 97人肏| 婷婷五月天激情四射| 亚洲国产一区二区三区四区国产| 亚洲精品97p| 顶级丝袜熟女一区二区三区| 欧美天天综合站| 乱伦1色页| 男人天堂综合| 不卡av在线中文字幕| 人妻天天操天天爽视频免费| 久久久蜜桃臀无码视频| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 国产又粗又长又大的视频| 激情五月天丁香社区| 国产超碰97| 国产精品自在线发布| 欧美少妇高潮久久91| 伊人久久综合精品欧美| 天天色怡春院| 不卡免费av在线播放| 97日韩欧美亚洲| 一个人免费HD91视频| 久久99999| 国产精品嫩草影院免费| 一摸二插三插| 中文字幕av色| 精品亚洲一区在线观看| 久久日本熟女精品一区| 免费看日本操逼视频| 欧美在线亚洲| 情色AV电影| 性色AV网站| 在线视频一区二区传媒| 性在久久久久久| 污电影在线观看| 亚洲性爱无码乱伦av| 精品熟妇视频一区二区| 日韩pv中文| 91狠狠色丁香婷婷综合久久精品| 99久久com免费视频′| 亚洲丝袜少妇在线| 久久天天躁日日躁狠狠躁 | 欧美亚洲系列| 亚洲精品97在线| 亚洲精品一二牛牛| 偷拍色图| 亚洲另类综合欧美| 岛国毛片在线观看免费| 亚洲极品| 欧美亚涩| 日韩无码黄色片| 精品成人久久久人人亚洲| 成人午夜小视频手机在线看| 青青久久艹| 久久免费看高潮毛片韩国| 人人插人人摸人人| 国产97亚洲| 中国黑人三级片网站上区| 日韩探花精品在线视频| 九九色婷婷| 欧美性天天| 欧美熟妇亚洲版| 色色色综合网| 日韩乱中文| 97中文综合| 肉丝网站91| 激情干在线| 久操视频在线观看| 丰满搜索结果 -第18页- 久久高清无码| 可能人人看人人摸| 久久一区二区三区四区五区| 成人精品欧洲亚洲| 97蜜桃综合| 亚洲乱码国产乱码精网站| 亚洲国产熟妇综合色专区| 国产成人主播| 国产亚洲 中文欧美久久| 久久夜夜夜夜| 都市激情人妻一区二区青青操视频| 美女视频尤物网在线看| 亚洲狼狼干综合1| 九九av| 中文字幕一区二区在线日韩精品| 男同专区一区二区三区在线| 亚洲 另类 丝袜 自拍 动漫| 97视频观看| 色噜噜人妻丝袜a∨先锋影| 综合影院永久入口国产| 午夜精品久久久久久久第一页按摩| 青青操在线亚洲视频观看欧美在线 | 啊啊啊慢点| 久久一二三四不卡| 欧美色图片91| 九色97| a级理论午夜日本| 国产精品福利资源在线尤物| 91美女在线| 亚洲麻豆18发?| 成人精品视频一区二区| 97五月天| 丁香六月综合激情| 亚洲欧美国产其他二区| 色综合av男人天堂| 亚洲精品成人动漫在线| 日本中文字幕熟妇| 国产精品久久久久久久电影渣男| 久久久久大香青草精品综合| 亚洲AV乱码专区国产噜噜亚洲| 亚洲精品三| 天天视频黄网站| 97超碰欧美| 啊啊啊啊啊好舒服视频| 欧美激情另类一区二区| 性爱视频免费网址| 中国和日本人色哪个不下载能放| 久久女女| 黑人性欧美| 丰满少妇精品一区二区| 欧美精品欧美精品系列| 亚洲在钱| 免费99精品国产自在在线| 亚洲限制级| 97色论| 成人资源中文字幕在线观看天天| 97香蕉碰碰人妻国产欧美| 欧美激情中文字幕另类小说| 免费作爱一级视频| 国产女人91精品嗷嗷嗷嗷| 日韩精品亚洲专区在线影视| 日韩精品一区二区三区色欲| 天天拍天天操| AV色天香在线| 97国伦国色| 97爱欧美| 好屌色综合| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 久久人人舔人人爽舔人人av片| 99国产在线 精品 视频| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 国产亚洲精品自在线亚洲情侣| 亚洲国产高清福利视频| 亚洲1区| 免费看毛片操穴| 人妻熟女午夜精品在线| 美日韩一卡二卡三卡免费人妻精品| 亚洲丝袜二区| 久久综合精品一区二区三区| 欧亚成人在线视频| 青青草国产一区二区三区| 欧美国产操逼| 男人的天堂日本东京热| 东北老熟女| 97天天摸天天爽| AVE乱伦| 黄片com.| 欧美综合自拍成人自拍第二十页| 日韩钢筋无码高清啾啾啾| 超碰碰激情97+久| 粉嫩久久久极品| 亚洲人妻色图| 亚洲精品一区二区精华| A片 AV一级在线播放观看免费| 91黑人无码激情在线| 青青草中文-久久青草精品一区二区三| 欧美日日网| 91黑丝美女| 人妻精品一区一区三区蜜桃91| 久久αⅴ| 丰满岳乱妇一区二区三区| 九九色影院| 日韩av熟女一区二区三区成人| 男人久久精品| 欧成人精品一区二区三区| 天天看天天干| 五月婷婷五月天| 97视频在线观看高清资源| www.acm成人黄色毛片| 97资源久久| 人人操人人干网页| 校园春色之综合网| 91欧美丝袜| 中文字幕97| 乱伦a片视频| 成人五月香网在线| 亚洲欧洲激情| 一级二级三级黑人无码| 人妻熟女一区在| 91爱做| 亚洲加勒比久久日本道| 午夜黄色免费在线观看| 亚洲最大的黄色电影网站。| 伊人久大| 欧美黄色大片在线观看| 精品久久久久久亚洲| 色拍偷亚洲| 亚洲欧洲av影音| 色吧五月| 粉嫩久久久极品| 操操逼视频| 亚洲综合激情五月久久| 97色涩| 熟女人妻精品一区二区视频 | 污啪啪啪视频| 成年在线视频日本亚洲在线视频区精品江靖宇公司 | 富二代亚洲精品99 | 日韩激情啪啪啪| 丝袜六区| 夜嗨影院| 亚洲,日韩,欧美,成人播放| 99视频自拍区| 亚洲精品国产av天美传媒| 国产性感骚丝袜在线| 91久操| 亚洲无码AV九九九| 日韩精品碰碰| 伊人五月天婷婷| 射久久| 国语精品对白| 九九九九九九九九九国产精品 | 9久精品| 青青青在线高清视频在线一二三四区| 福利五区| 中文字幕久久精品一区| 欧美日韩国产电影| 色五月激情AV在线| 中文字幕精品资源在线| 久草精品国产99| 亚洲综合在线第一页| 麻豆 美女 丝袜 人妻 中文| 亚洲男人在线观看天堂| 久久精品电影在线| 97久久精品不卡| 日韩欧美天堂| 精品一级毛片在线观看| 91高跟美女在线播放| 91天天综合网,天天综合网| 人妻精品综合中文字幕在线 | 女色综合| 国产无码精品成人| 熟女人妻一区二区三区| 一级性爱视频免费观看| 国产福利视频精品视频| 五月丁香六月激情综合| 91热热色| 欧美日韩91| 日韩激情啪啪| 色优久久| 日日橹狠狠爱欧美超碰| AV男人天堂网| 青娱乐休闲视频在线观看| 亚洲一区操| 色小视频蜜乳| AV综合中文字幕干| 大香蕉伊在线久草麻豆天堂故事| 国产污视频麻豆传媒一区二区| 裸体1区| 国产欧美日产一区二区三区 - 国产欧美日 | 欧美大香蕉卡久久| 亚洲天堂人人妻| 欧美亚洲美少妇一区二区| 亚洲一卡2卡3卡4卡乱码网站| 大香蕉免费3| 久久偷偷色综合蜜桃| 色淫网站优优视频| av最新免费中文字幕| 免费观看欧美日韩操逼视频| 日韩av三四区| 日韩精品 欧美激情| 欧美性夜| 国产精品成人无码av无码免费| 爽 好舒服 无码刺激久久| 夜夜爽妓女| 久久久偷拍| 大伊香蕉在线视频免费| 在线观看A啊啊啊| 校园春色亚洲色图| 色情五月丁香| 夜夜嗨TV| 日本国产欧美高清在线| 麻豆一区二区三区精品| 激情五月天中文字幕色| 91neishe| 欧美激情高清性猛交| 欧美刺激色黄片免费看| 久九9精品| 精品国产人成在线| 超碰97最新人妻| 国产婷婷综合在线观看| 97综合在线观看| 国产九区| 不卡九肏| 999九九九九国产动| 国产不良强奸视频免费看| 97久久资源| 日韩欧美加勒比| 超碰亚洲97| 九九综合九九综合| 少妇被玩视频二三区| 熟女六十路| 精爱久久| 天天色天天干天天射| 国产精品69久久久久久久| 东北黄色电影| 久久超碰网| 综合五月婷婷| 国产成人在线观看网址| 久久99亚洲精品久久99果| 亚洲黄色AV电影| 国内精品999| 最新亚洲人成网站在线影院| 老司机免费视频在线91| 激情综合婷婷| 国产精品白丝在线播放| 青操影院| 婷婷五月天丁香花| 国产成人99久久亚洲综合| 天天天操天天天爱| 国产青一二三| 色色香蕉| 国产精品自拍视频| 欧美久久人妻少妇一区二区| 国产91精品久久久久久久网曝门| 国产曰批免费观看久久久| 超碰在线免费一区二区三区| 精品国产99| 婷婷性爱| 久久久精品91八戒| 亚洲色图伊人网| 真实高潮91| 精品一区二区成人动漫| 日韩极品无码B| 亚洲欧美在线丝袜| 噜噜噜亚洲精品| 翘臀vidoes| 好淫网一二三视区| 久热热| 特级大荫道BBwBBwBBW| 日韩精品在线观看网站| A级毛片在线看免费| 亚洲色宗合| 欧中美三级一区二区三区| 欧美天堂超碰97| 高凊专区人人操| 99热精品在线观看| 天美传媒AV在线| 日本欧美亚洲高清在线看| 天天日天天射天天干| 99这里只有精品| 女人爽到高潮潮喷18禁网站 | 旡码电影特区| 2020视频1区2区3区| 人人扣人人操| 色99视频| 久久久久9999| 中文字幕啊啊啊在线观看视频| 天天干天天操天天干天天操| 亚州操逼图| 在线综合色| 欧美经典一区二区三区| 日日插夜夜| 国模不卡| 久久亚洲婷婷| 无码人妻一区二区一牛影视| 欧美三级一级| 天美欧美国产| 国产AV线| 91A欧美电影网站| 久久久草草精品| 美女t无毒不卡不卡| 亚洲精品人体| 免费少妇一区二区| AA特级绝黄| 国产女人91精品嗷嗷嗷嗷| 免费一级视频特黄色大片| 日韩精品区二区三区不卡| 99久久99九九99九九九| 欧美精品人妻视频| 91国产丝袜白虎| 国模精品一区二区三区苹果色戒| 国产免a费看黄片在线| 91麻豆va国产精品| 天天爽夜夜操| 超碰97久久观看| 欧美丝袜中文字幕07在线| 毛片一区二区| 久久亚洲精品成人av| 天天干天天操天天干天天操| 亚洲操人| 亚洲精品色| 国产丁香精品露脸视频| 欧美不卡在线一区二区| 丁香久久| 欧亚韩国999| 艹精品| 亚洲男人的天堂一区二区| 曰韩香蕉97| 啊啊啊好舒服视频| 狠狠躁天天躁日日躁| 在线另类| 欧美91色| 人人妻人射| av婷婷色网| 91天美免费| 秋霞一级视频在线观看免费| 2026国产精品视频| 人妻一区视频| 2017天天透天天通天天擦| 亚洲图片色图欧美另类| 国产精品网站www| 欧洲亚洲国产综合在线| 国产女同性恋视频| 一级做a爰片久久毛片图片| av午夜玫瑰| www亚洲免费| 中国熟女91| 国产精品国产拍高清AV| 精品人妻一区二区三区视频在线| 91精品91久久久中77777| 一二三区精品视频| 美女高潮视频91| 中文字幕一区二区三区四区在线视频| 欧美老妇综合网| 亚洲精品三区在线观看| 天天日熟妇| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 一区二区三区看视频| 人妻久久久久久久久久久久久久久| 亚洲丝袜少妇在线| 欧洲乱码一区二区| 熟女人妇一区二区三区| 欧美强奸乱能| 天天日天天色| 日韩熟女操逼| 少妇蹲下买菜露大唇0| 激情丁香五月婷婷| 国产极品精品美女视频| 丝袜视频网国产90| 91美腿丝袜在线观看| 国产精品自拍xxxx| 日韩亚洲欧美中文字幕| 色在线69堂| 夫妻四区五区六区| 天天看,天天做| 亚洲成人精品在线一区| 亚洲天堂久久| 劲爆欧美人妖三区91| 久久一二三四五六七八九区区区| 中文字幕奈奈美被公侵犯| 中文字幕一区二区无码成人| 亚洲自拍一区夜夜操| 97干com| 天天噜| 天堂av2019| 999精品久久久久久久| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 日韩无码服务区| 欧美日韩精品国产91| 9九九九九视频在线观看| 国产精品一区二区 尿失禁| 一级做受视频免费是看美女| 久久久亚洲精品中文字幕人妻| 天天激色| 久草男人天堂| 久久超碰98| AV在线资源| 熟女AV一区| 久久久久亚洲精品| 中文字幕十五区| 神马午夜久久久| 亚洲色图加勒比| 天天综合有色网| 日本加靬比网站发布页| 国产精品久久9| 欧美一级欧美三级在线观看| 欧美精品在线观看| 精品91摸| 泰国AV在线观看| 精爱久久| 欧美国产成人在线| 粉嫩AV一区夜夜嗨| 97超碰色| 欧美伦乱爱| 东北女人操比视频| 骚女高跟AV在线| 久久熟女久| 中文字幕乱偷人妻久久艾草网| 97精品综合久久网| 亚欧洲一区二区视频| 久久一区二区加油站| 青草园大香蕉| 蜜臀99久久精品| 亚洲毛片久久| 人人搞人人插人人操| 久久久亚洲| 国产AV色黄看到爽| 91在线丝袜视频| 99久久综合| 久久中文字幕女同性恋一区| 九九九国产| 天天看天天干| 精品国产www久久| 亚洲天堂,男人| 青青草国产亚洲精品久久| 欧美亚洲成人在线一区二区三区| 久久久九九| 91骚熟女| 日韩乱伦视频| 色色97爱| 蜜臀久久99精品久久久久久成人小说 | 日本精品高清一二区一本到| 九九RE视频在线精品| 国产青一二三| 伊人午夜福利视频| 国产成人欧美精品在线| 久久亚洲AV无码白度| 黄片www.| 在线97在线| 日韩91网| 国产亚洲日本精品在线| 一本正道久久熟女| 超碰色美女| 亚洲国产尤物yw在线观看| 桃色五月天| 精品免费成人久久| 国产成人99久久亚洲综合| 亚洲欧美中文日韩视频中国语| 视频分类 国内精品| 在线观看 99热| 99精品久久久久久久婷婷| 亚洲图片欧美| 99人人干| 精品少妇一区二区三区| 久久久久九九九| 夜夜操2028| 丰满熟妇大乳做爰| 天堂中文日本在线观看| 2000亚洲男人天堂| 97精品一区二区视频| 夜色五月天| 男女啊啊啊啊啊| 亚洲麻豆精品二区三区| 欧美色97| 亚洲一区二区麻豆影院| 青青草一区二区三区四| 一区二区视频在线播放| ai欧美亚洲小说| 欧美少妇性爱网站| 91强在线播放| 亚洲精品久久久久久久蜜桃臀| 九七毛片九九毛片| 日逼国产| 熟妇人妻精品一区二区| 亚洲AV无码国产成人| 日韩噜噜69| 99久久精品欧美国产| 91国产大片| 日操粉逼逼| 99久久99九九99九九九| 亚洲色五月| CCYY草草影院地址入口| 久啪| 日本操大逼| 97亚洲在线| 91精品丝袜久久久久久无码人妻| 日日夜夜精品| 中国女人内射6XXXXX| 色麻豆AV| 丁香五月婷婷基地| 18禁中文字幕| 精品少妇99| 青青草在线视频欧美| 日韩欧美视频青青| 国产三区免费在线观看| 亚洲色图欧美另类在线| 亚洲日韩人妻中文字幕一区| 综合天天网| 韩日精品四区| 91c色| 999综合网| 福利伊人玖玖国产| 在线观看岛国有码| 91操操| 国产精品亚洲天堂网址| 亚洲人精品久久久| 青娱乐 成人娱乐在线| 综合欧美日本三级| 91色人妻| 亚州综合在线| 97超碰影音| 加勒比日本在线| 男人兔费天堂| 色综合久久88色综合久久天天| 呦呦影院| 久操97| 传媒在线观看一区二区三区| 传媒免费一区二区三区| 少妇一线天久久久久久| 激情综合网五月婷婷| 亚洲欧美国产成人综合不卡| 欧美中文字幕日韩在线| 久久只有精品| 东北熟女91| 特污精品女优骚货黄色视频在线免费观看| 美女诱惑在线一区| 激情综合av| 大香蕉在线86| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 伊人青青草久久| 日韩午夜国产| 日韩 女同 综合| 狠狠 91| 五月天激情网图片| 69人妻精品一区二区绯色| 亚洲成av人片色午夜乱码| 人成午夜免费大片| 国产精品午夜高潮呻吟久久av| 久久久久国产精品喷潮免费观看臀 | 日韩人妻无码专区| 精品一区二区亚洲国产| 美国精品国产精品| 亚洲砖码砖专无区2023| 91人人看| 啊啊啊啊好疼| 亚洲最大无码中文字幕网站| 精品美女久久久久| 久久久久亚洲熟妇熟女| 亚热日本熟女| 尤物视频偷拍免费| 久久婷婷一区| 青青草好吊色| 女性喷水高潮在线观看| 国产精品亚洲天堂网址| 国产熟女免费观看久久| 国人欧美精品一区二区| 色婷五月天| 亚洲美女30b| 一中国女人毛片水真多| 97色婷婷| 五十路熟女人妻一区二区在线观看 | 欧美亚男人的天堂| 国产精品视频白浆免费| 国产亚洲人妻综合日韩 久久| 欧美成人贴图| 黄色一级视| 国产视频97| 你懂得91| 国产精品乱码久久久| 成片免费播放| 欧美懂色综合网| 人人爱人人操人人性| 国产麻豆福利av在线播放| AV在线资源| 精品国产72| 久久m| 日本成人免费一区二区三区| 国产a级午夜毛片| 日韩人妻资源网| 超碰夫妻97| 91另类| 另类亚洲一区二区三区| 在线v中文字幕一区二区三区| 五月婷婷六月丁香| 亚洲性综合| 中文字幕精品日韩中文字幕| 天天影视综合网欧美精品| 91中出视频| 93人人操人人| 欧美精品三区| 精品国产无码中文| 91欧美偷拍| 精品一区二区三区国产| 激情丁香五月| 搡老熟女免费视频| 亚洲高清无码AAA久久久精品| 加勒比AV网| 美女熟妇色| 成人久久精品| 一区二区三区免费岛国片| 欧美综合网1| 黄色AAAAA欧美| 成人精品一区二区三区| 亚洲日本激情| 极品少妇99| 浪人综合网| 精品亚州18| 性做久久久久久久| 九九热精品视频六| 日本色色网| 色姑娘综合网| 精品视频97| www成人啪啪18秘 免费| 大香蕉线| 久插综合| 国产精品岛国片在线观看| 亚洲精品97久久中文字幕| 国语人妻精彩刺激| 欧美日韩午夜精品一区二区三区| 欧美性爱一区| 美女写真| 欧美精品黑人猛交高潮| 玖玖大干人妻| 欧洲亚洲人妻无码中字久久三区四区 | 亚洲第一二区另类图| 国产精品久久久久av| 福利操逼| 无码精品久久| ji熟女.com| 欧美国产精品久久九九| 91操熟女视频| 亚洲综人| 国产夫妻性生活视频| 一区二区三区成人| 九九久久国产精品| 东京热亚洲一区二区| 久久五月丁香| 噜噜噜无码AV一级一级久久影院| 亚洲精品无码成人久久久99| 亚洲视频中文一区| 亚洲国产成人精品女人久久久| 999精品女人| 中文字幕99999| 男人的天堂com| 超碰97 线线 在现| 天天干嫩逼网| 粉嫩av平台| 欧美日韩啪啪电影| 亚洲国产av中文字幕久久| 伊人久久综合影院精品久久久| 啊啊啊无码| 成人一道本免费视频| 欧美亚洲色图另类国产| 久久一区二区高清免费| 日韩精品视频在线观看一卡二卡| 亚洲黄片免费在线播放| 亚洲国产成人福利在线观看| 秋霞久久亚洲精品成人| 美中日韩无码| 九月丁香| www四虎| 99蜜桃臀亚洲成人在线观看| 国产精品乱码久久久久久| 使劲用力艹少妇视频一区二区| wuyechaopeng| 久久精品人妻一区二区三区| 亚洲中文字幕久久无码精品| 欧美少妇色图| 青娱乐老司机视频| 欧美午夜一区二区三区| 亚洲情色第一页| 久久男人网| 九九九九九九精品| 好吊色综合| 亚洲高清无码在线桃色| 992这里有精品| 天堂国产AV| 精精品人妻一区二区三区| 亚洲巨爆乳一区二区三区四季网| 天天操人人操狠狠插| 日本欧美国内在线| 婷婷成人久久久精品| 99热这里只有精品1| 亚洲精品乱码线路中文字幕 | 亚洲 欧美 日韩另类 麻豆| 热思思免费视频| 六月婷婷综合| 久男人久久| 无套内射人妻在线播放| 天天日天天舔东京热| 精品国产三级av韩国在线| 久久秀这里有精品| 天美麻豆一区二区三区| 五月天玖玖资源站| 亚洲第二页| 操逼网免费无码视频| 黄色交缠性感爆操91国产精品免费一区二区三区| 99久久婷婷丁香| 96久久久精品| 无码少妇精品一区二区60岁老人| 日韩综合成人免费视频| 日本三级黄页| 五月天婷婷在线看| renqi久久久久久久久久久久| 久久九操在线观看| 国产三级中文有码在线视频| 久久久穴999| 欧美日韩色综合网| 是还免费视频1727我| 国产传媒操逼视频| 久久是精品| 91一起操| 欧美九九九| 黄页大片在线观看| 亚洲黄色视频在线观看视频| 婷婷三区| AV不卡在线| 人妻天天爽夜夜爽2| 柠檬AV导航| 欧美99999| 宅男午夜在线视频| 亚洲成人免费中文字幕| AV天堂男人的天堂| 人人爽夜夜玩视频| 操比国产| 国产丝袜啪啪| 男人的天堂.com| 岛国1区2区3区在线观看| 91嫩草欧美| 熟女六十路| AAAA级日本片免费视频| 美女97超碰| 久操精品网| www.亚洲黄色| 91九久| 欧美一级黄片视频在线| 一区二区三区男人的天堂| 亚洲国产麻豆一区二区三区| 中国91AV| 天天干天天中出av| 精品国产丝袜一区二区三区乱码| 麻豆区久久久久亚| 1024亚洲中文字幕久在线看片你懂的| 蜜乳中文字幕a在线| 日本顶级天天操狠狠操夜夜操中文字幕| ?亚洲伊人伊成久久人综合网| 一起草在线视频| 91欧美性| 夜夜高潮夜夜爽高清视频一| 国产午夜激片Av毛片不卡| 亚洲色图A| 日日日色色色色色| av在线人气| 91成人在线免费视频| 久草视频观看视频在线| 狠久久| 性色av婷婷久久一区二区点复制| 亚洲熟女乱综合一区二区三区| 日本在线不卡一二区| 久久久久久久91| 亚洲永久永久永久永久一级一级一级精品 | 青青草自拍视频在线播放| 国产人妻天天干精品| 国产野战露脸在线播放| 乱伦一二三区| 国产亚洲欧美每日在线| 国产精品盗摄 偷窥盗摄| 日本色色视频网站| 韩美日操逼| 校园春色五月天| 九九九九久久久| 一级日本牲交大片好爽在线看| 亚洲国产综合图区中文字幕| 亚洲男人天堂网站| 少妇特黄一区二区三区| 91男人天堂网| 欧美天天在线| 吊色| 97爱爱官网| 99在线观看视频在线高清| 精品视频久久区| 婷婷久久久精品| 日日骚网站| 亚洲成人AB| 婷婷8月天青娱乐| 试看60秒 爽| 午夜福利1区2区3区| PMv在线观看| 日韩99999| 欧美性天天影院| 色男人色天堂东京热| 三四中文字幕| 91精品久久久久五月天精品| 多乙久久久久久| 国产大片精久久久久久| 久久成人精品| 99亚洲精品| 中文字幕黄色片| 久久久久久中文版| 91骚熟女| 天堂8在线新版官网| 亚洲精品久久久久久久久豆丁网| 精吧天堂| 岛国A V在线免费看| 狠狠色婷婷777| 蜜乳Av成人片网站| 亚洲欧美日韩精品久久久一区二区 | 亚洲国产综合图区中文字幕| 亚洲无码一区成人免费午夜| 亭亭在线资源| 久久久久久裸体| 人妻少妇久久中文| 久久男人的天堂国产| 97久久视频| 色色操| 成人在线日韩| 99热亚洲天堂| 亚洲人码13| 欧美第一页| 九九九国产精品| 日韩97在线| 性色AV网站| 亚洲伊人a线观看视频| 日韩高清黄片| 中文字幕一区电影在线观看| 九九99精品视频在线观看| 日日日日日| 丁香五月激情五月| 一类无码操逼视频| 狠狠综合网| av三级电影在线播放| 97在线观看免费视频| 精品区国产区一区二区三区| 天天做日日爱夜夜爽| 手机在线观看不卡无码av| 国产真实野战在线视频| 亚洲激情网一二三四区| 熟妇熟女一区二三区| 日欧毛片久久| 色妺妺AⅤ| 又大又长又粗又爽又黄| 国产亚洲精品自在线亚洲情侣| 亚洲AV无码天美传媒一区| 1区2区3区中文字幕日韩| 黑人粗大V S日韩女优视频| 国产精品白丝| 深田咏美亚洲精品福利社 | 91天堂丝袜美腿| 免费一级黄色录像影片| 狠狠狠狠狠| 青草香蕉网|