J'ai un formulaire d'inscription où les utilisateurs peuvent choisir un avatar. Ils ont 2 possibilités:
Dans ma page HTML, j'ai ceci.
<img id="preview" src="img/default_1.png">
Il affiche l'avatar choisi. J'utilise File Api pour permettre aux utilisateurs de télécharger leur propre image. Cela rend le src de l'image HTML à quelque chose comme ça.
<img id="preview" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA... />
Quand ils postent le formulaire d'inscription. Les données seront envoyées à un service REST. Je peux envoyer les données codées en base64 lorsqu'un utilisateur a lui-même téléchargé un avatar. Mais comment gérer l'avatar par défaut? C'est une URL au lieu de base64 données codées.
Vous pouvez essayer l’échantillon suivant http://jsfiddle.net/xKJB8/3/
<img id="preview" src="http://www.gravatar.com/avatar/0e39d18b89822d1d9871e0d1bc839d06?s=128&d=identicon&r=PG">
<canvas id="myCanvas" />
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var img = document.getElementById("preview");
ctx.drawImage(img, 10, 10);
alert(c.toDataURL());
Vous pouvez également utiliser la classe FileReader:
var reader = new FileReader();
reader.onload = function (e) {
var data = this.result;
}
reader.readAsDataURL( file );