Dessiner une image de pixel tableau sur toile avec putImageData
Je suis en train de travailler sur un projet qui peut chiffrer une image et de les redessiner la restitution de l'image sur la toile. Comme je suis encore assez nouveau pour le codage et la programmation, je suis actuellement en train d'avoir des problèmes de redessiner la restitution des données de l'image, qui est un pixel de la matrice de la forme R,G,B,A. je pensais que ce serait possible en mettant simplement les données dans
ctx.putImageData(imgd,0,0);
Mais firebug me dit que la valeur n'implémente pas l'interface de données images. J'ai posté l'ensemble de la matrice ici. L'image est 160px de large et 120px haut.
Est-il possible de reformater le tableau de sorte qu'il est dessiné sur la toile?
imgd
?Bart: c'est juste la variable i affecté à la matrice
OriginalL'auteur user2262765 | 2013-04-09
Vous devez vous connecter pour publier un commentaire.
En supposant
imgd
est tout simplement un Tableau contenant toutes les valeurs d'octets, vous avez encore besoin de convertir le tableau de données images.var imgData = new ImageData(new Uint8ClampedArray(imgd), 160, 120)
?C'est un ajout relativement récent à la spécification. C'est un dispositif expérimental de l'API et pas pris en charge dans IE.
OriginalL'auteur Bart
À l'aide de Uint8 vous pouvez à présent beaucoup plus rapide:
Pas besoin d'aller octet-par-octet, sauf si vous avez besoin de modifier les valeurs de la première.
var palette = new ImageData(new Uint8ClampedArray(img), 160, 120)
?"la palette".. hmm, qui sonne comme quelque chose d'autre. Je serais probablement appeler la variable "données images" ou quelque chose de plus utile.
OriginalL'auteur Trevor