Stocker des images dans un objet Javascript

Je ne suis pas sûr si cela est possible, mais je veux stocker une image dans une variable JavaScript ou un objet et lorsque la page se charge, je veux que ces images apparaissent là où vous le souhaitez.

Je veux savoir si certaines images sont converties sous forme binaire. Peuvent-ils être convertis en images avec JavaScript?

26
demandé sur usr2564301 2010-03-07 12:29:19

3 réponses

Il semble que L'OP demande comment faire des îlots de données en JavaScript, spécifiquement pour les images. Aucune des réponses précédemment données ne fournit une telle méthode, alors voilà.

Fondamentalement, vous encodez l'image en tant que chaîne base64, puis définissez-la comme source d'un élément DOM. Définir la source d'un objet Image sur une url n'est pas équivalent, car il nécessite une connexion HTTP supplémentaire.

var data = 'data:image/gif;base64,'+
    'R0lGODlhAAEwAMQAAJ2M5Me98GRK1DoYyYBr3PHv++Pe99XO81Y50auc6PBkZEgpzbmt7HJa2I57'+
            // snip //
    'fS3CqU7XGYgE+GqHvrLJ8Tr6qXmqiwAF9CffgnMNqmWHAWNBwwGsKpKsrmJqltOOV69nuYxSkqpo'+
    'Tata18rWtrr1rTIIAQA7';
var icon_elem = document.getElementById("icon_here");
icon_elem.src = data;

Le code ci-dessus et un exemple complet peuvent être trouvés ici: http://www.kawa.net/works/js/data-scheme/base64-e.html

46
répondu Justin Johnson 2010-03-07 09:53:16

, Vous pouvez simplement utiliser

var img = new Image();
img.src = "http://yourimage.jpg";

Pour créer une image DOM.

Une image DOM est un objet en mémoire qui contient la forme binaire de l'image, il n'est donc pas nécessaire de la convertir en image car elle en est déjà une.

13
répondu Luca Matteis 2010-03-07 09:31:59

Vous voyez, c'est une question simple. Mais la méthode pour aborder ce problème n'est pas la façon dont vous essayez dès maintenant.

Ce que vous pensez fonctionnera:
Nous allons stocker l'image (ses données binaires) dans une variable js, puis la gifler sur la page à tout moment.

Comment cela fonctionnera beaucoup plus facilement:
il vous suffit de créer une image DOM sur la page et de définir sa source. Le navigateur va récupérer l'image du serveur automatiquement.

Exemples:

Ex-1:

var img_src = "http://someserver/yourimage.png";
var node = document.getElementById('the-node-in-which-i-want-my-image');
node.innerHTML = "<img src='"+img_src+"' alt='my image'>";

Ex-2: (en utilisant jquery) - c'est essentiellement le même que ci-dessus, seulement beaucoup plus facile à écrire:

var img_src = "http://someserver/yourimage.png";
$('#the-node-in-which-i-want-my-image')
    .html("<img src='"+img_src+"' alt='my image'>");

Maintenant, il y a encore une chose: le navigateur commence à récupérer l'image après ce code s'exécute, donc l'image apparaît un peu après l'avoir insérée dans le DOM.

Pour éviter cela, vous pouvez pré-récupérer les images en utilisant:

var prefetch = new Image();
prefetch.src = "http://someserver/yourimage.png";

Cheers!

1
répondu jrharshath 2010-03-07 09:40:04