Click here to Skip to main content
11,496,146 members (807 online)
The site is currently in read-only mode for maintenance. Posting of new items will be available again shortly.
See more: Java Swing
            BufferedImage bimg = ImageIO.read(fc.getSelectedFile());
            bimg.setRGB(0, 0, 1234);
            int x = bimg.getRGB(0,0);
in the above code i didn't get x as 1234 why ?
Posted 8-Feb-13 0:54am

1 solution

That is because in BufferedImages with a ColorModel the pixel is set to the nearest colour chosen. That means that you might not get the colour you wanted because the colours you can set are limited to the colours in the ColorModel.

You can get around that by creating your own BufferedImage and draw the source image onto that and then manipulate those pixels;

package com.bornander.test;
 
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
 
public class Program {
	
  public static void main(String[] args) throws Exception {
    BufferedImage src = ImageIO.read(new File("C:\\Temp\\SomeImage.png"));
    BufferedImage dst = new BufferedImage(src.getWidth(), src.getHeight(), BufferedImage.TYPE_4BYTE_ABGR);
    dst.getGraphics().drawImage(src, 0, 0, null);
		
    System.out.println("Before: " + dst.getRGB(0, 0));
    dst.setRGB(0, 0, 1234);
    System.out.println("After : " + dst.getRGB(0, 0));
  }
}

Hope this helps,
Fredrik
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 Dnyaneshwar@Pune 692
1 RyanDev 230
2 CHill60 163
3 Sascha Lefèvre 145
4 Sergey Alexandrovich Kryukov 124
0 Sergey Alexandrovich Kryukov 10,401
1 OriginalGriff 8,910
2 Sascha Lefèvre 3,899
3 Maciej Los 3,422
4 Richard Deeming 2,600


Advertise | Privacy | Mobile
Web03 | 2.8.150520.1 | Last Updated 8 Feb 2013
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100