2009-02-21 7 views
1

Je souhaite créer une application (extension Firefox) qui va saisir une zone d'écran, enregistrer en tant qu'image et la télécharger sur un serveur.Télécharger la zone sélectionnée en tant qu'image sur le serveur

Voici ma feuille de route:

Je vais d'abord créer un script utilisateur Greasemonkey qui sera applicable à tous les domaines. Quand une page se charge, il ajoute un petit bouton nommé "screengrab + upload". Lorsque l'utilisateur cliquera sur le bouton, il ajoutera un gestionnaire de souris afin que je puisse dessiner un élément div.

Par cet élément redimensionnable div je vais sélectionner une zone rectangulaire sur la page Web. Sur l'événement MouseUp, j'ajouterai un élément équivalent Canvas sur la zone sélectionnée. Ensuite, je vais utiliser la fonction todataurl pour convertir la zone sélectionnée en image/png. Maintenant, je veux télécharger ces données sur mon serveur. Comme mon serveur est différent du domaine de la page Web, je dois télécharger les données (image/png base64 encoded) sur le serveur via un script interdomaine.

Pour le téléchargement d'images, je vais ajouter un iframe caché de mon nom de domaine à la page Web. À partir de la page Web, les données seront publiées sur cette iframe en tant que variable, puis à partir du iframe, les données seront publiées sur mon serveur.

Enfin, je vais convertir le script greasemonkey en une extension FireFox en utilisant le compilateur/convert.

Serai-je capable de faire cette application de cette façon? S'il vous plaît suggérer le bon moyen de le faire.

+0

J'ai presque fait cette application. J'ai utilisé l'extension firefox "ScreenGrab" et modifié son code. Cette application sauvegarde l'image dans le système localfile. J'ai télécharger des images en utilisant XMLHttpRequest(). Comme j'utilise la demande directe Ajax pour télécharger des images. Il est valide comme Im demandant de la fenêtre de chrome – user69260

Répondre

0

Oui, vous pouvez faire exactement cela. Écrivez votre script GM (je suggère including jQuery pour le rendre plus facile). Lorsque vous l'avez dans GM, utilisez le User Script Compiler pour créer une extension.

Questions connexes