Czy można pisać tekst w HTML5 canvas
?
Czy można pisać tekst w HTML5 canvas
?
Odpowiedzi:
var canvas = document.getElementById("my-canvas");
var context = canvas.getContext("2d");
context.fillStyle = "blue";
context.font = "bold 16px Arial";
context.fillText("Zibri", (canvas.width / 2) - 17, (canvas.height / 2) + 8);
#my-canvas {
background: #FF0;
}
<canvas id="my-canvas" width="200" height="120"></canvas>
Narzut:
<canvas id="myCanvas" width="300" height="150"></canvas>
Skrypt (z kilkoma różnymi opcjami):
<script>
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
ctx.font = 'italic 18px Arial';
ctx.textAlign = 'center';
ctx. textBaseline = 'middle';
ctx.fillStyle = 'red'; // a color name or by using rgb/rgba/hex values
ctx.fillText('Hello World!', 150, 50); // text and position
</script>
Zapoznaj się z dokumentacją MDN i tym przykładem JSFiddle .
Canvas
Wsparcie tekst jest faktycznie dość dobre - można kontrolować font
, size
, color
, horizontal alignment
, vertical alignment
, i można również uzyskać dane tekstowe, aby uzyskać szerokość tekstu w pikselach. Ponadto możesz również użyć płótna transforms
do rotate
, stretch
a nawet invert
tekstu.
Pisanie tekstu na płótnie jest naprawdę łatwe. Nie było jasne, czy chcesz, aby ktoś wprowadził tekst na stronie HTML, a następnie ten tekst pojawił się na płótnie, czy też zamierzasz użyć JavaScript do zapisania informacji na ekranie.
Poniższy kod zapisze tekst w różnych czcionkach i formatach na płótnie. Możesz to zmienić, jeśli chcesz przetestować inne aspekty pisania na płótnie.
<canvas id="YourCanvasNameHere" width="500" height="500">Canvas not supported</canvas>
var c = document.getElementById('YourCanvasNameHere');
var context = c.getContext('2d'); //returns drawing functions to allow the user to draw on the canvas with graphic tools.
Możesz umieścić znacznik ID kanwy w kodzie HTML, a następnie odwołać się do nazwy, lub możesz utworzyć kanwę w kodzie JavaScript. Myślę, że przeważnie widzę <canvas>
tag w kodzie HTML, a czasami widzę, że jest on tworzony dynamicznie w samym kodzie JavaScript.
Kod:
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
context.font = 'bold 10pt Calibri';
context.fillText('Hello World!', 150, 100);
context.font = 'italic 40pt Times Roman';
context.fillStyle = 'blue';
context.fillText('Hello World!', 200, 150);
context.font = '60pt Calibri';
context.lineWidth = 4;
context.strokeStyle = 'blue';
context.strokeText('Hello World!', 70, 70);
Chyba zależy od tego, co chcesz z tym zrobić. Jeśli chcesz tylko napisać zwykły tekst, możesz użyć .fillText()
.
Tak, oczywiście, możesz z łatwością pisać tekst na płótnie, a także możesz ustawić nazwę czcionki, rozmiar czcionki i kolor czcionki. Istnieją dwie metody na budowę tekst na płótnie, tj fillText () i strokeText () . fillText () służy do tworzenia tekstu, który może być wypełniony tylko kolorem, natomiast strokeText () służy do tworzenia tekstu, można nadać tylko kolor konturu. Jeśli więc chcemy zbudować tekst, który jest wypełniony kolorem i ma kolor konturu, musimy użyć obu z nich.
tutaj pełny przykład, jak pisać tekst na płótnie:
<canvas id="Canvas01" width="400" height="200" style="border:2px solid #bbb; margin-left:10px; margin-top:10px;"></canvas>
<script>
var canvas = document.getElementById('Canvas01');
var ctx = canvas.getContext('2d');
ctx.fillStyle= "red";
ctx.font = "italic bold 35pt Tahoma";
//syntax : .fillText("text", x, y)
ctx.fillText("StacOverFlow",30,80);
</script>
Oto demo tego i możesz wypróbować własną modyfikację: http://okeschool.com/examples/canvas/html5-canvas-text-color
Znalazłem dobry tutorial na oreilly.com .
Przykładowy kod:
<canvas id="canvas" width ='600px'></canvas><br />
Enter your Text here .The Text will get drawn on the canvas<br />
<input type="text" id="text" onKeydown="func();"></input><br />
</body><br />
<script>
function func(){
var e=document.getElementById("text"),t=document.getElementById("canvas"),n=t.getContext("2d");
n.fillStyle="#990000";n.font="30px futura";n.textBaseline="top";n.fillText(e.value,150,0);n.fillText("thank you, ",200,100);
n.fillText("Created by ashish",250,120)
}
</script>
dzięki uprzejmości: @Ashish Nautiyal
Pisanie tekstu na płótnie jest łatwe. Powiedzmy, że twoje płótno jest zadeklarowane jak poniżej.
<html>
<canvas id="YourCanvas" width="500" height="500">
Your Internet Browser does not support HTML5 (Get a new Browser)
</canvas>
</html>
Ta część kodu zwraca zmienną do kanwy, która jest reprezentacją twojego płótna w HTML.
var c = document.getElementById("YourCanvas");
Poniższy kod zwraca metody rysowania linii, tekstu i wypełnień na kanwie.
var ctx = canvas.getContext("2d");
<script>
ctx.font="20px Times Roman";
ctx.fillText("Hello World!",50,100);
ctx.font="30px Verdana";
var g = ctx.createLinearGradient(0,0,c.width,0);
g.addColorStop("0","magenta");
g.addColorStop("0.3","blue");
g.addColorStop("1.0","red");
ctx.fillStyle=g; //Sets the fille of your text here. In this case it is set to the gradient that was created above. But you could set it to Red, Green, Blue or whatever.
ctx.fillText("This is some new and funny TEXT!",40,190);
</script>
W serwisie Amazon jest przewodnik dla początkujących dotyczący kindle http://www.amazon.com/HTML5-Canvas-Guide-Beginners-ebook/dp/B00JSFVY9O/ref=sr_1_4?ie=UTF8&qid=1398113376&sr=8-4&keywords=html5 + płótno + początkujący, który jest wart swojej ceny. Kupiłem go kilka dni temu i pokazał mi wiele prostych technik, które były bardzo przydatne.
text
</a> . To bardzo dobra lektura.