2008-12-20 13 views
1

Je veux être capable d'utiliser un script Greasemonkey qui peut prendre une image d'une page, l'analyser pour le pixel le plus sombre, puis revenir ces coordonnées au navigateur. À l'origine, j'ai utilisé un script Flash ... Greasemonkey incorporait un fichier flash local qui récupérait l'image en fonction d'une URL dans la source de la page Web, utilisait ActionScript pour obtenir le pixel le plus sombre, puis envoyait une requête POST avec ces coordonnées en tant que valeurs.Script côté client pour lire et manipuler l'image à partir du Web (détails ...)

Le problème est, je veux seulement télécharger l'image une fois. Avec cette méthode, il le fait deux fois (une fois dans le navigateur, une fois en flash). Existe-t-il un moyen de manipuler une image à partir d'une page Web dans Javascript ou avec un autre langage client? J'ai essayé d'utiliser un canevas, mais vous ne pouvez pas utiliser la fonction getImageData() sur des images hébergées sur des serveurs distants.

Répondre

2

Vous pouvez le charger en flash seulement, et faire avec votre image ce que vous voulez, puis si vous avez besoin de l'afficher dans la page, vous pouvez encoder l'image comme chaîne base64 du PNG (vous aurez besoin de bibliothèques AS pour PNG et encodage en base64). L'étape suivante serait de passer la chaîne en javascript, et en Javascript, vous pourriez profiter de la possibilité d'intégrer des images en base64 (supportées dans Firefox, Opera, pas IE).

La syntaxe est:

<img src='data:image/png;base64,ABCDE...'> 

où "ABCDE ..." est la chaîne base64 générée en flash. De cette façon, vous obtiendrez seulement l'image une fois, mais pourrez toujours l'afficher comme une image html normale.

J'ai utilisé cette technique dans un projet animal j'ai créé (www.creationempire.com/tstyles) pour générer les images dans un générateur d'image en ligne, et ai eu l'idée originale de http://danielmclaren.net/2008/03/embedding-base64-image-data-into-a-webpage

Hugo

Questions connexes