Applet pour recuperer le contenu du presse papier et enregistrer en jpg

fmazoue Messages postés 335 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 1 septembre 2015 - 24 févr. 2004 à 11:16
fmazoue Messages postés 335 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 1 septembre 2015 - 24 févr. 2004 à 14:53
bonjour a tous voilà mon pb :
je voudrais créer un applet permettant de récupérer le contenu du presse papier puis d'enregistrer ce contenu dans un jpeg !
j'ai recuperer un bout de code dans le forum mais j'arrive pas a l'utilisé !
si qqn pouvait m'aider !
il doit me manquer des truc que je dois importer je pense déjà mais je sais pas lesquels ! secondo si on pouvai me dire comment l'integrer dans une page html et le rendre operationnel merci !
voici le bout de code :

Clipboard cp = getToolkit().getSystemClipboard();
Transferable tt = cp.getContents(this);

Image image = (Image) (tt.getTransferData (DataFlavor.imageFlavor));
BufferedImage bufferedImage = new

BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage

.TYPE_INT_RGB);
Graphics g = bufferedImage.createGraphics();
g.setColor(Color.white);
g.fillRect(0,0,image.getWidth(null),image.getHeight(null));
g.drawImage(image,0,0,null);
g.dispose();
FileOutputStream fout = new FileOutputStream(new File("toto.jpg"));
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fout);
encoder.encode(bufferedImage);
niarf :-p

8 réponses

cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
24 févr. 2004 à 13:25
:big) Neodante :big)

En fait le code est bon (du moins il me semble !) mais la sécurité lié à l'utilisation d'une applet te l'empêche normalement (prob de sécurité ... récupéré le contenu du clipboard ... espionnage ...)
@+

[Responsable www.neogamedev.com]
0
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
24 févr. 2004 à 13:26
:big) Neodante :big)

Sinon regarde ton policy ... pour essayer de passer outre ..
@+

[Responsable www.neogamedev.com]
0
fmazoue Messages postés 335 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 1 septembre 2015 1
24 févr. 2004 à 13:45
oui mais moi j'arrive pas a compilé deja !!! voila mon code :

import com.sun.image.codec.jpeg.*;

public class essai {
public static void main (String [] args) {



Clipboard cp = getToolkit().getSystemClipboard();
Transferable tt = cp.getContents(this);

Image image = (Image) (tt.getTransferData(DataFlavor.imageFlavor));
BufferedImage bufferedImage = new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_INT_RGB);
Graphics g = bufferedImage.createGraphics();
g.setColor(Color.white);
g.fillRect(0,0,image.getWidth(null),image.getHeight(null));
g.drawImage(image,0,0,null);
g.dispose();
FileOutputStream fout = new FileOutputStream(new File("toto.jpg"));
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fout);
encoder.encode(bufferedImage);

}
}

et voila l'erreur de compil :

essai.java:9: cannot resolve symbol
symbol : class Clipboard
location: class essai
Clipboard cp = getToolkit().getSystemClipboard();
^
essai.java:9: cannot resolve symbol
symbol : method getToolkit ()
location: class essai
Clipboard cp = getToolkit().getSystemClipboard();
^
essai.java:10: cannot resolve symbol
symbol : class Transferable
location: class essai
Transferable tt = cp.getContents(this);
^
essai.java:10: non-static variable this cannot be referenced from a static conte
xt
Transferable tt = cp.getContents(this);
^
essai.java:12: cannot resolve symbol
symbol : class Image
location: class essai
Image image = (Image) (tt.getTransferData(DataFlavor.imageFlavor));
^
essai.java:12: cannot resolve symbol
symbol : class Image
location: class essai
Image image = (Image) (tt.getTransferData(DataFlavor.imageFlavor));
^
essai.java:12: cannot resolve symbol
symbol : variable DataFlavor
location: class essai
Image image = (Image) (tt.getTransferData(DataFlavor.imageFlavor));
^
essai.java:13: cannot resolve symbol
symbol : class BufferedImage
location: class essai
BufferedImage bufferedImage = new BufferedImage(image.getWidth(null),image.g
etHeight(null),BufferedImage.TYPE_INT_RGB);
^
essai.java:13: cannot resolve symbol
symbol : class BufferedImage
location: class essai
BufferedImage bufferedImage = new BufferedImage(image.getWidth(null),image.g
etHeight(null),BufferedImage.TYPE_INT_RGB);
^
essai.java:13: cannot resolve symbol
symbol : variable BufferedImage
location: class essai
BufferedImage bufferedImage = new BufferedImage(image.getWidth(null),image.g
etHeight(null),BufferedImage.TYPE_INT_RGB);

^
essai.java:14: cannot resolve symbol
symbol : class Graphics
location: class essai
Graphics g = bufferedImage.createGraphics();
^
essai.java:15: cannot resolve symbol
symbol : variable Color
location: class essai
g.setColor(Color.white);
^
essai.java:19: cannot resolve symbol
symbol : class FileOutputStream
location: class essai
FileOutputStream fout = new FileOutputStream(new File("toto.jpg"));
^
essai.java:19: cannot resolve symbol
symbol : class FileOutputStream
location: class essai
FileOutputStream fout = new FileOutputStream(new File("toto.jpg"));
^
essai.java:19: cannot resolve symbol
symbol : class File
location: class essai
FileOutputStream fout = new FileOutputStream(new File("toto.jpg"));
^
15 errors

niarf :-p
0
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
24 févr. 2004 à 14:06
Salut,

il te manque simplement les import nécessaires :
java.awt.datatransfer.Clipboard
java.io.File
....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fmazoue Messages postés 335 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 1 septembre 2015 1
24 févr. 2004 à 14:15
sa marche toujours pas il m'en manque encore !

pour le moment j'ai trouvé qu'il me fallait import tout ca :

import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.datatransfer.Clipboard;
import java.awt.image.BufferedImage;
import java.io.*;
import java.io.File;
import com.sun.image.codec.jpeg.*;

maintenat il y a plus que la method toolkit qu'il trouve pas et il me dit un truc comme quoi this est non static machin...
niarf :-p
0
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
24 févr. 2004 à 14:37
Salut,

ta méthode getToolkit vient d'où ? T'as fait un copier coller d'un exemple ?
Bref pour avoir le toolkit il faut faire :
Toolkit.getDefaultToolkit()

Pour les import si tu mets
import java.io.*;
tu n'as pas besoin de mettre
import java.io.File;
vu qu'avec l'étoile le compilateur va importer toutes les classes de java.io. (pareil pour Clipboard)

Pour 'this' c'est normal car this représente l'instance de ton objet or dans la méthode main qui est static donc non liée à une instance 'this' n'existe pas.
Donc tu crées un méthode par ex 'testImage()' dans ta classe Essai (avec un 'E' majuscule c'est mieux) et dans ton 'main' tu fais
new Essai().testImage();
0
fmazoue Messages postés 335 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 1 septembre 2015 1
24 févr. 2004 à 14:45
ola !
doucement !
alors pour le this j'ai compris ca c ok; pour les import ca aussi c compris mais je comprend pas ce que tu me raconte sur le toolkit et testimage !

moi pour le moment ma source sa donne ca (elle se compile très bien !!!! :-) :




import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.datatransfer.Clipboard;
import javax.swing.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.io.File;
import com.sun.image.codec.jpeg.*;

public class essai extends JApplet{
public void init () {

try{

Clipboard cp = getToolkit().getSystemClipboard();
Transferable tt = cp.getContents(this);

Image image = (Image) (tt.getTransferData(DataFlavor.imageFlavor));
BufferedImage bufferedImage = new BufferedImage(image.getWidth(null),image.getHeight(null),BufferedImage.TYPE_INT_RGB);
Graphics g = bufferedImage.createGraphics();
g.setColor(Color.white);
g.fillRect(0,0,image.getWidth(null),image.getHeight(null));
g.drawImage(image,0,0,null);
g.dispose();
FileOutputStream fout = new FileOutputStream(new File("c:/toto.jpg"));
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(fout);
encoder.encode(bufferedImage);

}
catch(UnsupportedFlavorException ex){

}
catch(IOException ex){

}
catch(AccesControlException ex){
System.out.println("Probleme securite : "+ex);
}

}
}

niarf :-p
0
fmazoue Messages postés 335 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 1 septembre 2015 1
24 févr. 2004 à 14:53
en fait là maintenant j'ai un probleme je crois de sécurity ! y a pas un moyen pour donner tout les droit genre avec permission ? comment on utilise ca ?
niarf :-p
0
Rejoignez-nous