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:
en sortie j'obtiens ceci:
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)));
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..
Partager