htmlcanvasfontscufontypeface.js

How can I use custom fonts in an HTML5 Canvas element?


I've looked at things like Cufon and typeface.js but they seem to be SIFR alternatives and don't allow you to set freeform coordinates and draw custom type onto a <canvas>

Anyone got any ideas?


Solution

  • I've thrown together a simple demo on jsfiddle here showing how to do this with @font-face: http://jsfiddle.net/zMKge/

    Opera also has a simple tutorial on using <canvas>, including the text API.

    CSS:

    @font-face {
        font-family: 'KulminoituvaRegular';
        src: url('http://www.miketaylr.com/f/kulminoituva.ttf');
    }
    

    Javascript:

    var ctx = document.getElementById('c').getContext('2d');
    var kitty = new Image();
    kitty.src = 'http://i954.photobucket.com/albums/ae30/rte148/891blog_keyboard_cat.gif';
    kitty.onload = function(){
      ctx.drawImage(this, 0,0,this.width, this.height);
      ctx.font         = '68px KulminoituvaRegular';
      ctx.fillStyle = 'orangered';
      ctx.textBaseline = 'top';
      ctx.fillText  ('Keyboard Cat', 0, 270);
    };