canvas圖片繪制及常用svg精解 濃縮版

圖片發(fā)自簡(jiǎn)書App

canvas屬于客戶端技術(shù),圖片在服務(wù)器中,所有瀏覽器必須先下載

要繪制圖片,且等待圖片異步加載成功后繪制.

? 1:創(chuàng)建圖片對(duì)象? ? var p3 = new Image();

? 2:下載圖片? ? ? ? p3.src = "x.png";

? 3:綁定事件 onload? p3.onload = function(){} 圖片下載成功

? 4:繪制圖片? ? ? ? ctx.drawImage(p3,x,y);? 原始大小繪圖

? ? ? ? ? ? ? ? ? ? ctx.drawImage(p3,x,y,w,h); 拉抻繪圖


html5新特性--canvas[變形操作]

? ctx.rotate(弧度); 旋轉(zhuǎn)畫筆對(duì)象,軸點(diǎn)為畫布的原點(diǎn)

? ctx.translate(x,y); 將整個(gè)畫布的原點(diǎn)平移到指定點(diǎn)

? ctx.save();? ? ? 保存畫筆當(dāng)前所有狀態(tài)(角度/原點(diǎn)/顏色)<存盤>

? ctx.restore();? ? 恢復(fù)畫筆狀態(tài)到最近一次保存中? <讀取存盤>

?

3.3:html5新特性--svg

位圖:由一個(gè)又一個(gè)像素組成,每個(gè)點(diǎn)各有自己的顏色,色彩細(xì)膩,但是放大失真.

矢量圖:由一個(gè)又一個(gè)線條組成,每個(gè)線條指定顏色,方向,可以無(wú)限縮放,但是細(xì)節(jié)不夠豐富

SVG(可縮放的矢量圖)

canvas:2d位圖,js代碼繪圖,事件只能綁定畫布,適用于游戲

svg:2d矢量圖,標(biāo)簽,事件可以綁定到元素

類型,地圖應(yīng)用



? SVG 技術(shù)誕生2000年,早期作為XML的擴(kuò)展,H5把常用SVG標(biāo)簽

? 采納為標(biāo)準(zhǔn),但有一些廢棄.

? html-->xml ->html5

? 3.4:html5新特性--svg--矩形

? <svg id="" width="" height="">

? ? svg 畫布

? ? <rect? width="" height="" x="" y=""

? ? fill="" stroke="" fill-opacity="" stroke-opacity=""

? ? stroke-width=""></rect>

? </svg>

svg繪圖特點(diǎn)--著重注意

(1)所有圖形默認(rèn)只有填充色(黑色)沒有描邊色

(2)svg圖形的樣式可以用元素屬性方式聲明,也可以使用css

聲明,只能使用svg專用樣式,不能使用CSS樣式,

如邊框設(shè)置只能 stroke,不能用border

(3)圖形可以使用JS來對(duì)屬性賦值,但不能用html dom只能用

核心dom

r.x = 10? r.width = 100;? ? ? ? ? ? ? ? ? ? ? 無(wú)效

r.setAttribute("x",10); r.setAttibute("width":100); 有效

(4)動(dòng)態(tài)添加svg圖形

? #html 字符串拼

? var html = "<rect></rect>";

? svg.innerHTML = html;

? #dom元素創(chuàng)建

? var rect =

? document.createElementNS("http://www.w3.org/2000/svg",

? ? "標(biāo)簽名");

? svg.appendChild(rect);

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容