2012-05-24 141 views
0

我正在使用HTML5繪製線條。但是,當畫布的寬度和高度很大時,它無法在Chrome中正常工作。我似乎無法在html5畫布上繪製線條

我使用鉻19.0.1084.52,我的操作系統是Windows 7

有沒有人使用http://www.w3schools.com/html5/tryit.asp?filename=tryhtml5_canvas_line進行測試?

如果增加畫布的寬度和高度,則線條消失。

在鉻中有沒有任何最大高度和寬度的畫布,有沒有人有解決方案?

回答

0

線條的最大寬度和高度取決於使用的瀏覽器。

如果你想繪製非常寬的線,然後你畫一個矩形,並將其轉換到正確的位置,並將其旋轉到線的角度。

1

有可能是一個寬度和高度的限制,但我覺得這是不夠的,

http://jsfiddle.net/AkashSaikia/4c75a/

它有大尺寸

發揮每W3C這裏 它像這與無符號的長度大約是0到4,294,967,295

interface HTMLCanvasElement : HTMLElement { 
      attribute unsigned long width; 
      attribute unsigned long height; 

    DOMString toDataURL(optional DOMString type, any... args); 
    void toBlob(FileCallback? _callback, optional DOMString type, any... args); 

    object? getContext(DOMString contextId, any... args); 
}; 

但是,如測試一次大約需要0到2147483647

看到這裏http://jsfiddle.net/AkashSaikia/9EWad/1/

而當或者你是如何改變Canavas的高度和寬度?

FIY,如果您更改畫布的高度和寬度屬性,那麼它將清除畫在它上面的東西。

+0

<!DOCTYPE html> 你能測試這段代碼嗎?它不起作用我的瀏覽器 您的瀏覽器不支持canvas元素。 Ranjith

+0

上面的代碼不工作我的鉻。我只將畫布寬度的大小設置爲600和高度1000. ande line繪製表單10,10至320,50並返回至10,50。 – Ranjith

+0

在這裏你可以看到http://jsfiddle.net/AkashSaikia/6wHj2/ 它的工作,最新的問題... –

1

這是一個有趣的問題!

與我的Chrome和Firefox的測試後,我發現:

  • 平咱這如果畫布寬度>
  • 畫布寬度>
  • 火狐借鑑什麼

如果您的畫布寬度大於該數量r,什麼都不會畫出來。

我不知道爲什麼會有這樣的限制。 也許我們可以通過瀏覽器的源代碼找出根本原因!

以下代碼是一個示例。你可以click here to run it

<!DOCTYPE html> 
<html> 
<body> 

If canvas width is greater than 32767, Chrome can't draw anything.<br> 

<canvas id="myCanvas" width="32768" height="100"></canvas> 

<script type="text/javascript">  
var c=document.getElementById("myCanvas"); 
var ctx=c.getContext("2d"); 
ctx.lineWidth = 5; 
ctx.moveTo(10,50); 
ctx.lineTo(300,50); 
ctx.stroke();  
</script> 

</body> 
</html> 
0

根據我的經驗,至少在iOS設備上存在畫布渲染的大小限制。這是由於GPU內存有限,因爲畫布通常是現在硬件加速的。

對於iOS設備,對於具有256 + MB內存的設備,最大尺寸爲5兆像素,對於內存較少的設備,最大尺寸爲3兆像素。