Bonjour a tous,
je souhaite créer une image jpeg et ensuite récupérer les valeurs exactes de pixels sauvegardées dans cette image.
malheureusement après avoir j'effectué la compression l'image restituée n'est plus tout à fait la même...
voici un petit bout de code pour illustrer mon propos:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
        BufferedImage image = new BufferedImage(50, 50, BufferedImage.TYPE_INT_RGB);
        for (int col = 0; col < image.getWidth(); col++) {
            for (int row = 0; row < image.getHeight(); row++) {
                image.setRGB(col, row, 50);
            }
        }
        image.setRGB(1, 1, 10);
        ImageIO.write(image, "jpg", new File("sample.jpg"));
        BufferedImage jpgImage = ImageIO.read(new File("sample.jpg"));
        System.out.println("buffered image->" + new Color(image.getRGB(1, 1)));
        System.out.println("jpeg image->" + new Color(jpgImage.getRGB(1, 1)));
en sortie j'obtiens ceci:
buffered image->java.awt.Color[r=0,g=0,b=10]
jpeg image->java.awt.Color[r=0,g=0,b=50]

Tous les pixels ont un rgb de 50 sauf le pixel(1,1) qui a un rgb a 10, dans l'image jpeg générée le pixel est passé à 50...

Ma question est: est-il possible de récupérer la valeur d'origine qui était de 10?
Toute aide sera vraiment la bienvenue!

PS : je souhaite utiliser le format jpeg car le png est trop volumneux dans mon cas..