Intereting Posts

Obtenir l'image de l'écran d'impression dans le presse-papiers

Existe-t-il un moyen d'obtenir l'image de l'écran d'impression à partir du clavier. Disons, par exemple, que j'avais un site d'hébergement d'image et je voulais une fonctionnalité où les utilisateurs pourraient coller dans une image et simplement l'héberger de cette façon. Serait-ce possible?

Désolé, c'est une question si vague.

EDIT: Est-ce possible avec une sorte de plugin tiers? Existe-t-il des plugins existants de Firefox qui font quelque chose de similaire?

Il semble que cela soit possible en HTML 5 à l'aide de l'élément Canvas . Voir cette question.

Il ne semble pas être possible en Flash mais dans Adobe Air. Voir cette question .

Une applet Java signée peut accéder au presse-papiers.

Regardez l'interface ClipboardService .

La première fois que l'utilisateur charge la page, ils verront une boîte de message demandant l'autorisation d'accéder au presse-papiers.

Mise à jour Je viens de découvrir que l'applet n'a pas besoin d'être signé pour utiliser ClipboardService , même si l'utilisateur voit toujours le message d'avertissement la première fois.

Non, pour autant que je sache depuis des années de connaissance de Javascript et de Flash, cela n'est pas possible. Flash et JavaScript ne vous permettent pas de creuser suffisamment profondément dans le système. (En outre, je ne voudrais pas un utilisateur s'ils pouvaient lire mon presse-papiers à volonté!)

J'ai une applet qui fait exactement cela.

L'écran d'impression de l'utilisateur atteint, l'applet copie l'image du presse-papiers, les formate et télécharge sur le serveur.

Voici la classe qui l'attrape du CB, si vous voulez que les autres formats et téléchargements sur le serveur me le permettent.

 import java.awt.Image; import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; import java.io.IOException; import java.security.AccessController; import java.security.PrivilegedAction; public class ImagefromCB { // If an image is on the system clipboard, this method returns it; // otherwise it returns null. public Image getImageFromClipboard() { Clipboard systemClipboard = (Clipboard) AccessController.doPrivileged(new PrivilegedAction() { public Object run() { Clipboard tempClipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); return tempClipboard; } }); // get the contents on the clipboard in a // Transferable object Transferable clipboardContents = systemClipboard.getContents(null); // check if contents are empty, if so, return null if (clipboardContents == null) return null; else try { // make sure content on clipboard is // falls under a format supported by the // imageFlavor Flavor if (clipboardContents.isDataFlavorSupported(DataFlavor.imageFlavor)) { // convert the Transferable object // to an Image object Image image = (Image) clipboardContents.getTransferData(DataFlavor.imageFlavor); return image; } } catch (UnsupportedFlavorException ufe) { ufe.printStackTrace(); } catch (IOException ioe) { ioe.printStackTrace(); } return null; } public Image getCBImage() { System.out.println("Copying image from system clipboard."); Image image = getImageFromClipboard(); if (image != null) { return image; } else { System.out.println("No Image found on Clipboard"); return null; } } } 

Deux produits qui font cela sont Jira et Youtrack . Tous deux en utilisant une applet Java. Vous pouvez utiliser ces GUI de produits comme source d'inspiration lors de la création de votre système. J'aime particulièrement YouTracks Image du Presse-papiers sans aperçu où vous n'avez pas besoin d'interagir directement avec l'applet.