Convertir un Graphics2D d'une Image ou d'un BufferedImage
J'ai un petit problème ici.
J'ai une applet, où l'utilisateur peut "dessiner" à l'intérieur. Pour ce faire, j'utilise le java.awt.Graphics2D.
Mais, comment puis-je faire pour enregistrer l'utilisateur de dessiner une image comme une image JPEG, ou au moins, de les convertir en un BufferedImage ou quelque chose? Je ne sais pas comment faire.
Grâce.
Veuillez voir Edit 1 dans ma réponse pour un exemple de ce que je voulais dire.
OriginalL'auteur caarlos0 | 2011-07-04
Vous devez vous connecter pour publier un commentaire.
Demandez-leur de dessiner directement dans un BufferedImage par le biais de son objet Graphics2D que vous pouvez obtenir via getGraphics(). Ensuite, utilisez
ImageIO.write(...)
à la sortie de l'image quelque soit le type de fichier que vous désirez (et c'est pris en charge). Le ImageIO API devrait vous aider avec ceci: ImageIO API.L'autre problème que vous aurez est là que sont-ils censés enregistrer l'image une fois qu'elle a été dessinée? Sur leur propre ordinateur? Si donc, et c'est une applet programme, l'applet devra être "signé" pour avoir la permission d'écrire sur le disque. Si vous n'êtes pas sûr, consultez Google, cet article, ou vous pouvez écrire une nouvelle question pour cette question.
Edit 1: exemple de code
Par exemple:
OriginalL'auteur Hovercraft Full Of Eels
Je faire de cette façon, et fonctionne très bien:
C'est tout 🙂
Merci à tous 🙂
OriginalL'auteur caarlos0
Utiliser le
drawImage
méthode prévue parGraphics2D
et écrire à l'aide deImageIO
Corrigez-moi si je me trompe, mais n'est pas
drawImage
tirageimg
àg2dObject
et pas l'inverse? Je pense que cette approche sera tout simplement enregistrer une image vide etg2dObject
ont en fait le contenu que vous souhaitez enregistrer ...OriginalL'auteur c00kiemon5ter
Utiliser le "drawOnImage" exemple de La Peinture Custom Approches. Ensuite, pour créer l'image du panneau, vous pouvez utiliser le L'Image De L'Écran classe.
OriginalL'auteur camickr
Si vous souhaitez dessiner JComponent de l'image sur BufferedImage (extends JApplet JComponent):
Et à écrire ses données en fichier JPEG:
OriginalL'auteur Muskovets