25. april 2007 - 16:57Der er
3 kommentarer og 1 løsning
Billeder i java
I forbindelse med et projekt vil jeg gerne indlæse et billede og på en eller anden måde få fat i farverne på hvert enkelt pixel. Formatet er ligegyldigt så bare det, der er nemmest. Billedet vil være i sort/hvid, hvis det er nogen hjælp.
Ikke helt den løsning jeg valgte at bruge. Fandt et bibliotek kaldet bufferedImage. Den er brugt som følger, hvis nogen står i samme situation (Funktionen er hevet ud af en større kode, hvilket nok også fremgår tydeligt):
public Object[] getInput() throws SensorException { File file = new File(imageUrl); try { BufferedImage image = ImageIO.read(file);
// Test if the image is the right size. if(image.getHeight()==h && image.getWidth()==w) { ArrayList<Integer> coloredPixels = new ArrayList<Integer>();
// Runs through the image pixel by pixel and adding the number // of all the pixels which are not white to coloredPixels. for(int i=0; i<h; i++) { for(int j=0; j<w; j++) { // getRGB returns -1 if the pixel is white. int c = image.getRGB(j,i);
if(c!=-1) { // The image is considered to be one long row of pixels coloredPixels.add(i*h+j); } } }
return coloredPixels.toArray(); }
else { throw new SensorException("Wrong input size to sensor"); }
}
catch (Exception exc) { throw new SensorException("Wrong input to sensor"); }
}
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.