Toon posts:

[Java] ColorModel werkt tegen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik probeer hier een image in te lezen in mijn Java-programma en daar de rgb-componenten van iedere pixel uit te halen.

De code:

Java:
1
2
3
4
5
6
7
8
image = ImageIO.read(new File(texturePath));
int i = (int)Math.floor(tc.u*image.getWidth());
int j = (int)Math.floor(tc.v*image.getHeight());
int pixel = image.getRGB(i,j);
float r = (float)(image.getColorModel().getRed(pixel)/255);
float g = (float)(image.getColorModel().getGreen(pixel)/255);
float b = (float)(image.getColorModel().getBlue(pixel)/255);
return new float[] {r,g,b};


Nu krijg ik steeds de exception

Exception in thread "main" java.lang.IllegalArgumentException: More than one component per pixel
at java.awt.image.ComponentColorModel.getRGBComponent(Unknown Source)
at java.awt.image.ComponentColorModel.getRed(Unknown Source)
at SObjectMaterial.getColor(SObjectMaterial.java:95)

Ik snap niet wat ik mis doe. Die ImageIO maakt een BufferedImage aan met het standaard kleurenmodel, ik roep daar de standaard pixelmethode op en geef die standaardpixel mee aan standaardkleurenmodel.

Volgens de API:
"ColorModel objects used with images for which pixel values are not conveniently representable as a single int throw an IllegalArgumentException when methods taking a single int pixel argument are called."

Wat doe ik verkeerd?

Ik heb al andere images geprobeerd, maar ik heb het overal voor.