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

Interfaces Graphiques en Java Discussion :

Comment charger une image de type webp ?


Sujet :

Interfaces Graphiques en Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2022
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2022
    Messages : 31
    Points : 28
    Points
    28
    Par défaut Comment charger une image de type webp ?
    Bonjour,

    J'essaie en vain de charger une image de type webp (je n'ai aucun problème avec d'autres types d'images).
    Pour cela j'ai utilisé un exemple trouvé dans un forum (voir le code ci-joint).
    Peut-être le format webp n'est-il pas supporté par le package javax.imageio.

    Peut-être faut-il télécharger un nouveau package, si oui où le trouver. Si non y a t-il une solution ?

    Merci d'avance.

    GG
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    package cinephil;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import javax.imageio.ImageIO;
     
    public class AfficherWebP 
    {
    	private String nom = "F:\\cinephil\\Affiches\\mon_image.webp";
    	public static void main(String[] args) throws IOException 
    	{
    		AfficherWebP AfficherWebP = new AfficherWebP();
    		AfficherWebP.readWebpImage();
    	}
     
    		private void readWebpImage() throws IOException 
    		{
    			File filein = new java.io.File(nom);
    			if (! filein.exists())
    			{
    				System.out.printf("Pas trouvé");
    				System.exit(8);
    			}
    			BufferedImage image = ImageIO.read(filein);
    			if (image==null)
    			{
    				System.out.printf("impossible de lire ce fichier");
    				System.exit(8);
    			}
    			int largeur = image.getWidth();
    			int hauteur = image.getHeight();
    	               System.out.printf("\nDimension de l'image:%dx%d", largeur, hauteur);
    	}
    }

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Août 2005
    Messages : 6 840
    Points : 22 854
    Points
    22 854
    Billets dans le blog
    51
    Par défaut
    Bonjour, la solution semble être d'utiliser une lib tierce soit en tant que plugin pour imageio, soit directement. Voir How to read WebP files in Java pour en savoir plus.
    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

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2022
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2022
    Messages : 31
    Points : 28
    Points
    28
    Par défaut
    désolé de répondre si tard, mais avec les fêtes et les vacances, il y a longtemps que je ne me suis pas connecté.
    En fait, après avoir exploré tous les forums sur ce sujet, j'ai pris la solution de convertir les xxxx.webp en xxxx.png, online. Ceci en utilisant un package de modules :
    libwebp-1.2.4-windows-x64 (l'équivalent existe aussi pour OSX.)

    Si cela peut servir à d'autres développeurs, voici ma solution :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
     
    public class WebPLoad  
    { 
    	private static String  delim  = System.getProperty("file.separator");
     
    	public static String  userdir = System.getProperties().getProperty("user.dir") ;
    	public static String  OS      =   System.getProperty("os.name") ;  	// On cherche sous quel système on tourne 
     
    	static String convertToPNG(String nom, String path)
    	{
    		String prog = "dwebp";
    		if (! OS.startsWith("Mac ")) prog =prog + ".exe"; // pour windows
    		if (! userdir.endsWith(delim)) prog = delim + prog ;
    		else;
    		String programme = userdir + prog;
    		if (path.endsWith(delim)) delim = "";  // le délimiteur existe déja
     
    		if (gegeutil.Gegetools.isEmpty(nom))  return null; 
    		if (gegeutil.Gegetools.isEmpty(path)) return null; 
     
    		String infile  = path + delim + nom + ".webp"; 
    		String outfile = path + delim + nom + ".png"; 
     
    		try 
    		{
    			 ProcessBuilder process = new ProcessBuilder( programme, infile, "-o", outfile ) ;
    			 Process p;
     
    			 p = process.start();
    			 final BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
    			 String line;
    	            while ((line = reader.readLine()) != null) 
    	            {
    	                System.out.println(line);
    	            }
    			 reader.close();
    			 p.waitFor();
    			 p.destroy();
    			 java.io.File filein = new java.io.File(infile);
     
    			 filein.delete();
     
    			 return nom + ".png"; 
    		}
     
    		catch (Exception e) 
    		{
    			e.printStackTrace();
    			return null;
    		}
     
    }
     
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment charger une image à partir de vignettes ?
    Par ml1234 dans le forum Mise en page CSS
    Réponses: 0
    Dernier message: 28/05/2009, 08h17
  2. charger une image de type gif(annimé)
    Par farid0031 dans le forum C++Builder
    Réponses: 1
    Dernier message: 16/05/2009, 04h46
  3. Comment charger une image d'un chemin sur le disque ?
    Par faroukus dans le forum OpenCV
    Réponses: 3
    Dernier message: 23/04/2008, 09h25
  4. comment charger une image?
    Par sandy07 dans le forum Multimédia
    Réponses: 1
    Dernier message: 28/05/2007, 20h54

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