J'ai une question à propos de la méthode BufferedImage#getType. Lorsque vous faites référence une image PNG à partir du système de fichiers, le code suivant imprimera dans mon Mac et dans une boîte CentOS avec cette machine virtuelle Java:Pourquoi java.awt.image.BufferedImage # getType renvoie une valeur différente Mac & CENTOS
java version "1.6.0_03" Java (TM) SE Runtime Environment (build 1.6.0_03-b05) Java HotSpot (TM) 64 bits serveur VM (build 1.6.0_03-b05, mode mixte)
import java.awt.*;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.*;
public class ImageTypeTest {
public static void main(String[] args) throws Exception{
BufferedImage sourceImage = ImageIO.read(new File("/path/to/png.png"));
System.out.println(sourceImage.getType());
}
}
quelqu'un peut-il s'il vous plaît faire la lumière sur ce qui pourrait être provoquant cette différence afin que je puisse travailler autour d'elle? Le code renvoie les mêmes valeurs pour les autres types d'images, par exemple les images GIF.
Merci
c'est totalement normal. Que voulez-vous dire par «travailler autour de lui» *? Vous pouvez instancier votre propre BufferedImage avec le type exact que vous voulez et copier l'image que vous avez lue dans ce BufferedImage. AFAIK vous ne pouvez pas forcer ImageIO.read à créer directement le type BufferedImage souhaité. Notez également que forcer votre propre type BufferedImage entraînera probablement des performances sous-optimales lorsque vous manipulerez l'image sur les différentes plates-formes que vous ciblez. – SyntaxT3rr0r
Bonjour Webinator, je comprends que c'est normal; la question est, quelle est la cause? Pourquoi ai-je différents types d'images pour la même image dans les différents systèmes d'exploitation? C'est ce que je ne comprends pas, pourquoi seraient-ils différents si c'est le même fichier image? Merci pour votre réponse. – Ytsejammer