Vous aurez besoin de créer un élément canvas avec des dimensions correctes et de copier les données d'image avec l' drawImage
fonction. Ensuite, vous pouvez utiliser l' toDataURL
fonction permettant d'obtenir des données: l'url qui a codé en base 64 image. Notez que l'image doit être entièrement chargé, ou vous aurez juste revenir un vide (noir, transparent) de l'image.
Il serait quelque chose comme cela. Je n'ai jamais écrit un script Greasemonkey, de sorte que vous pourriez avoir besoin d'ajuster le code à exécuter dans cet environnement.
function getBase64Image(img) {
// Create an empty canvas element
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
// Copy the image contents to the canvas
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
// Get the data-URL formatted image
// Firefox supports PNG and JPEG. You could check img.src to
// guess the original format, but be aware the using "image/jpg"
// will re-encode the image.
var dataURL = canvas.toDataURL("image/png");
return dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
}
L'obtention d'un JPEG format de l'image ne fonctionne pas sur les anciennes versions (autour de 3,5), de Firefox, de sorte que si vous voulez soutenir que, vous aurez besoin pour vérifier la compatibilité. Si le codage n'est pas pris en charge, il sera par défaut "image/png".