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

圖片發(fā)自簡書App

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

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

? 1:創(chuàng)建圖片對象? ? 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(弧度); 旋轉畫筆對象,軸點為畫布的原點

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

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

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

?

3.3:html5新特性--svg

位圖:由一個又一個像素組成,每個點各有自己的顏色,色彩細膩,但是放大失真.

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

SVG(可縮放的矢量圖)

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

svg:2d矢量圖,標簽,事件可以綁定到元素

類型,地圖應用



? SVG 技術誕生2000年,早期作為XML的擴展,H5把常用SVG標簽

? 采納為標準,但有一些廢棄.

? 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繪圖特點--著重注意

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

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

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

如邊框設置只能 stroke,不能用border

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

核心dom

r.x = 10? r.width = 100;? ? ? ? ? ? ? ? ? ? ? 無效

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

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

? #html 字符串拼

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

? svg.innerHTML = html;

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

? var rect =

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

? ? "標簽名");

? svg.appendChild(rect);

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容