canvashtml5保存
1. 如何使html5 <canvas>
1.現在head設置canvas的背景顏色
2.然後在body裡面寫<canvas>***</canvas>.中間內容是給不能支持canvas元素的瀏覽器顯示用專的。
3.然後寫js文件,<script type='text/javascript'>
var canvas=document.getElementById(『屬canvas』);
var c=canvas.getContext(『2d』);
接下去就是繪制方法了,詳情請網路,,,因為比較多。。。。
2. HTML5 save()和restore()問題
樓主的「調用函數相當於把被調用函數寫到調用函數內」我沒看懂,不過我能告訴樓主為啥save和restore不能省去。
原來的函數我簡單解釋成這樣:因為context是一個全局對象,context.save()的時候保存了context當前的狀態值,然後你執行了一些值的修改,比如改變陰影大小,在函數最後調用context.restore()方法將context之前的狀態值還原回去。
當樓主注釋掉save和restore後,這時調用drawText函數時context的畫筆狀態就不會保存與還原(這么說你懂嗎?注釋掉了save就不會保存之前的狀態,同樣畫完也不會還原畫筆狀態)
3. 怎樣在html5中添加canvas標簽
<canvas> 標簽是 HTML 5 中的新標簽。
定義和用法
<canvas> 標簽定義圖形,比如圖表和其他圖像。
<canvas> 標簽只是專圖形容器,您必須使用腳本屬來繪制圖形。
實例
通過 canvas 元素來顯示一個紅色的矩形:
<!DOCTYPEHTML>
<html>
<head>
<scripttype="text/javascript">
varcanvas=document.getElementById('myCanvas');
varctx=canvas.getContext('24d');
ctx.fillStyle='#FF0000';
ctx.fillRect(0,0,80,100);
</script>
</head>
<body>
<canvasid="myCanvas"></canvas>
</body>
</html>
4. 怎麼將canvas保存到手機相冊跪求方法,移動端的!
第一步我們可以在本地用記事本創建個html文件,用來寫我們的demo實例,如下圖cancas.html
2/7
第二步編輯該文件,開始寫html頁面代碼,如下圖所示
3/7
第三步在第二步的基礎上給頁面容器的畫布上用cancas花一個正方形的圖片,代碼如下圖所示
4/7
寫完之後保存,然後我們就可以在瀏覽器打開該網頁進行測試了,測試結果如下圖所示
5/7
我們點擊頁面上的「保存圖片」按鈕,會彈出另存為窗體,我們也可以對圖片進行重命名以及選擇保存路徑,點擊「下載並打開」按鈕,如下圖所示
6/7
打開後我們可以看到圖片已經下載到本地並打開了,具體效果如下圖所示
7/7
最後為大家展示下完整的頁面代碼,如下圖所示
5. HTML5如何通過canvas,把兩張圖片繪制到畫布,然後導出大圖
<imgsrc="......."id="img1"/>
<imgsrc="......."id="img2"/>
<imgid="img3"/>
varimg1=document.getElementById("img1"),
img2=document.getElementById("img2"),
img3=document.getElementById("img3");
varcanvas=document.createElement("canvas"),
context=canvas.getContext("2d");
canvas.width=img1.naturalWidth+img2.naturalWidth;
canvas.height=Math.max(img1.naturalHeight,img2.naturalHeight);
//將img1加入畫布
context.drawImage(img1,0,0,img1.naturalWidth,img1.naturalHeight);
//將img2加入畫布
context.drawImage(img1,img2.naturalWidth,0,img2.naturalWidth,img2.naturalHeight);
//將畫布內容導出
varsrc=canvas.toDataURL();
img3.src=src;
<p>drawImage的使用方法可以去這里看一下</p>
<ahref="https://developer.mozilla.org/zh-CN/docs/Web/API/CanvasRenderingContext2D/drawImage"/>
6. html5可以在canvas上放div么
如果讓div在canvas上面覆蓋顯示,可以將div設置成position:absolute;或fixed
然後通過left和top進行定位
如果要在canvas里套div標簽,則只有不支持canvas標簽的瀏覽器才會識別canvas標簽內的內容,支持的就忽略了,這主要是用來寫不支持提示信息的
7. HTML5里canvas的操作
說下思路 在給個簡單的代碼. 首先先畫好線. 要平移實際上是 將線重新畫一次 不是直接一個translate就好了的.再次你要理解save和restore()方法 code
<canvas id="canvas" width="700" height="550" style="border:1px solid #d3d3d3;"></canvas>
<script>
var canvas=document.getElementById("canvas");
var ctx = canvas.getContext("2d");
function lines(ctx){
ctx.beginPath();
ctx.moveTo(10,10);
ctx.lineTo(30,50);
ctx.lineTo(50,70);
ctx.lineTo(120,190);
ctx.stroke();
}
lines(ctx);
document.getElementById("canvas").addEventListener("click",function(){
ctx.save();
ctx.clearRect(0,0,700,550);
ctx.translate(50,50);
lines(ctx);
ctx.restore();
},false)
</script>
8. html5之canvas困惑
canvas相當於一張圖片,css設置的屬性相當於對這張圖片進行拉伸變化。要改變canvas的大小,應當用這種方式
<canvas width=500 height=400></canvas>
對應的javascript是
canvas=document.getElementsByTagName('canvas')[0];
canvas.width=500;
canvas.height=400;
換句話說,你現在畫出的1px的線條實際顯示的是在默認大小上經過拉伸變換的樣子。
9. html5 canvas上面畫的圖形,有沒有類似於ID,Value這種屬性(我需要存放一個字元,並且可讀取)
老哥,解決了嗎?我現在在研究這一塊,求分享~~
看了一個上午, 想到一個思路,給圖形數據的json的時候,在json裡面添加id欄位和text欄位,text指向唯一id
var a = [
{"id":"1","x":"80","y":"70","width":"120","height":"70","text":"哈哈哈啊"},
];
ctx.fillStyle=red;
if(a['id']=1){
ctx.fillText=a['text'];
}
ctx.fillRect(a['x'],a['y'],a['width'],a['height']);
剛想到的, 還沒嘗試實現,思路應該沒問題,數據量大的情況的下,就是一個循環,id從0開始,對應i。等於是把每個圖形的識別字元放在json裡面,需要的時候調用json對象,循環就行了。 例如點擊某個塊的時候,獲取他的填充文字,就能對應到json對象的某個你需要的欄位了。
10. 怎樣將html5中利用canvas繪制的圖像在服務端保存為圖片
首先你得搞明白為什麼需要Base64這個東西,Base64的主要應用場景就是把二進制(Binary)的內容通過一個映射轉換到可以用ASCII字元表達的字元串,然後便於使用HTTP協議在客戶端和伺服器端傳輸數據。所以,關鍵的一部你做的有些問題
byte[] bytes=decoder.decodeBuffer(s);
這里解碼出來的byte[]已經是你的圖片內容了,這些byte不可能再成功的構造成字元串了,否則為何還需要用Base64啊。所以,你需要保存的是解碼出來的byte[],而不是Base64的字元串。
另外,Base64的編解碼器,你用的那個BASE64Decoder是sun.misc提供的,為了確保最大化的兼容,比如運行在非Sun JVM的環境時,建議使用apache的common-codec。