IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

BufferedImage enregistré avec filtre non voulu


Sujet :

Entrée/Sortie Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 69
    Par défaut BufferedImage enregistré avec filtre non voulu
    Bonjour à tous.

    J'ai un ptit souci de filtre sur les images que j'enregistre....

    Enfin, seulement parfois, pas tout le temps...

    j'enregistre une image du press papier et elle s'enregistre parfois avec un filtre dessus.
    Si je l'affiche avec imageicon dans un jlabel pas de probleme mais si je l'affiche dans un pdf (avec ittext), on ne peux pas l'exploiter à cause du filtre (image casi noire).Elle est bien enregistrée avec ce satané filtre.
    Le filtre n'apparait pas si j'utilise un utilitaire(FastStone) pour faire mon copier/collé.

    Voici la classe qui m'enregistre l'image:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public static void saveClipboard(String fileName) {
    		BufferedImage image = (BufferedImage) getClipboardImage();
    		saveImage(image, fileName);
    	}
    private static void saveImage(BufferedImage image, String fileName) {
    		try {
    			ImageIO.write(image, "jpeg", new File(fileName));
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    J'avoue ne pas comprendre d'ou vient ce filtre et comment m'en débarasser...

    Merci de vos lumiéres...

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 69
    Par défaut
    En fait c'est car l'image est sélectionnée pour la copier....

    La question devient: comment faire pour copier une image sans la sélectionner...?

    Avec un print screen ça marche bien mais pas avec le copier coller...

    Bon W E.

  3. #3
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 781
    Par défaut
    D'ou vient ta fonction getClipboardImage()? Je ne crois pas qu'elle vienne de l'API standard.

  4. #4
    Membre éprouvé
    Inscrit en
    Juin 2008
    Messages
    189
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 189
    Par défaut
    Pour sauvegarder dans le presse papier, il faut plutôt faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TransferableImage t = new TransferableImage(getImage());
    		Toolkit.getDefaultToolkit().getSystemClipboard().setContents(t, null);
    Avec TransferableImage d'ici : http://java.developpez.com/faq/java/...gePressePapier


    Quand je chargeais du presse papier, j'utilisais un code du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    /**
             * Permet d'obtenir l'image qui est actuellement dans le presse papier.
             * Null est retourné si aucune image n'est dans le presse papier actuellement
             * 
             * @return
             */
    	static public BufferedImage getCurrentToolkitImage() {
    		Transferable t = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null);
    		try {
    	        /** Vérification que le contenu est de type texte. */
    	        if( t!=null && t.isDataFlavorSupported(DataFlavor.imageFlavor) ) {
    	                BufferedImage im = (BufferedImage)t.getTransferData(DataFlavor.imageFlavor);
    	                return convertIntoValidBufferedImage(im);
    	        } 
     
    		} catch( UnsupportedFlavorException e1) {
    		        e1.printStackTrace();
    		} catch( IOException e2 ) {
    		        e2.printStackTrace();
    		} 
    		return null;
    	}

    Donc, voir : http://subversion.developpez.com/pro...monsUtils.java et là : http://subversion.developpez.com/pro...wServices.java

  5. #5
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 919
    Billets dans le blog
    54
    Par défaut
    As-tu verifie quelles etaient les autres saveurs (DataFlavor) presentes dans le presse-papier. Si ton app externe te colle une image non-filtree c'est peut-etre que cette meme image non-filtree est disponible sous une autre saveur qui lui convient mieux (un windows meta-file ? un objet COM quelconque ?) alors que ton code a toi s'arrete sur toute la premiere saveur compatible sans chercher a voir plus loin ce qu'il y a de disponible. Apres bien sur reste le probleme d'arriver a interpreter ce que contient le presse-papier (parce que si c'est un objet Windows tu n'es pas sorti d'affaire).

    Note: je ne suis rendu compte que certaines applications recentes comme les dernieres version d'Offices semblent parfois utiliser d'autres mecanismes que le presse-papier systeme et donc parfois Java ne recupere aucune saveur quand on essaie de faire du copier-coller ou du DnD depuis ces applications.

    EDIT : ca m'etonne quand meme que ca s'affiche bien avec ImageIcon et mal en PDF, cela viendrait-il plutot du format de la BufferedImage * ?

    *Genre le convertisseur PDF ne supporte pas les images transparentes?
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 69
    Par défaut
    Merci de vos réponse ....

    Pour Uther
    Effectivement la fonction getClipboardImage() a pas été mis dans le code (oups...)

    La voila :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     
    public static Image getClipboardImage() {
    		Transferable transfer = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null);
    		try {
    			if (transfer != null && transfer.isDataFlavorSupported(DataFlavor.imageFlavor)) {
    				return (BufferedImage) transfer.getTransferData(DataFlavor.imageFlavor);
    			}
    		} catch (UnsupportedFlavorException e1) {
    			e1.printStackTrace();
    		} catch (IOException e2) {
    			e2.printStackTrace();
    		}
    		return null;
    	}
    qui ressembble assez a ce que m'a ecrit Jack Sparrow

    Pour bouye , effectivement, c'est slt avec les utilitaires office 2007 que ça marche pas (word, outlook), si je passe par paint, bin c'est bon , ça me mets pas de "filtre" pour dire que j'ai selectionné mon image .
    Je vais essayer de voir avec les Flavor si je peux faire quelquechose.


    Je testerais à l'occasion avec une version enterieur de word...

    Merci bien de votre aide...

  7. #7
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Il faut aussi savoir que sur certaines impressions écrans (par exemple venant d'un film), ça peut faire un peu n'importe quoi

Discussions similaires

  1. [WD15] Nombre d'enregistrements avec filtre
    Par L.Lemarchand dans le forum WinDev
    Réponses: 6
    Dernier message: 05/06/2016, 18h35
  2. [AC-2003] Somme d'enregistrement avec filtre
    Par Nikodemus dans le forum IHM
    Réponses: 2
    Dernier message: 03/11/2011, 15h37
  3. Réponses: 0
    Dernier message: 03/06/2008, 15h40
  4. [GD] Image enregistrée avec imagepng() non disponible
    Par darokin dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 13/02/2007, 19h15
  5. Filtre non appelé avec jsp:include
    Par atuan dans le forum Taglibs
    Réponses: 1
    Dernier message: 08/11/2006, 11h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo