uso mdn getcontext figuras ejemplo dibujar javascript safari canvas

javascript - mdn - getcontext canvas



¿Cómo dibujar texto en una etiqueta<canvas> en Safari? (4)

He estado experimentando con el uso de la etiqueta <canvas> para dibujar diagramas y gráficos simples, y hasta ahora es bastante fácil trabajar con él. Tengo un problema pensado. No puedo descifrar cómo dibujar texto en un <canvas> en Safari. En Firefox 3.0, puedo hacer esto:

Chart.prototype.drawTextCentered = function(context, text, x, y, font, color) { if (context.mozDrawText) { context.save(); context.fillStyle = color; context.mozTextStyle = font; x -= 0.5 * context.mozMeasureText(text); context.translate(x, y); context.mozDrawText(text); context.restore(); } }

He visto referencias a un método fillText() en los documentos Safari de Apple, pero no parece ser compatible con Safari 3.2. ¿Es esto simplemente algo que falta en la actualidad, o es algún secreto bien guardado?


Estoy usando la etiqueta <canvas> para dibujar el logo de Facebook, pero la imagen, el texto se estira.

<div class="content1"> <canvas id = "e" class="myCanvas"> <script> var canvas = document.getElementById("e"); var context = canvas.getContext("2d"); context.fillStyle = "white"; context.font = "normal 64px Facebook Letter Faces"; context.fillText("facebook",10, 100); </script> FACEBOOK </canvas> </div>

Archivo CSS:

.content1 { float:left; position:relative; width:180px; height:120px; } .myCanvas { float:right; position:relative; width:170px; height:60px; margin-right:5px; margin-top:70px; background-color:#044692; }


No creo que Safari 3.2 sea compatible con la representación de texto en el lienzo.

Según este blog , Safari 4 beta admite desgarrar texto en el lienzo, en función de las API de texto del lienzo HTML 5 .

editar : He confirmado que el siguiente fragmento funciona en Safari 4 beta:

<canvas id="canvas"></canvas> <script> var context = document.getElementById("canvas").getContext("2d"); context.fillText("Hello, world!", 10, 10); </script>


Esto no es ideal, y parece que está bien esperar, pero para referencia, hay una biblioteca llamada strokeText que hace su propia representación de fuente. Funciona en Firefox 1.5+, Opera 9+, Safari (no sé qué versiones) e IE6 + (usando VML en lugar de canvas).