# Gitter auf Bild legen



## HarryHut (13. März 2006)

*Probleme*

Habe folgenden Code


```
int redCnt = 0;
                    int greenCnt = 0;
                    int width = image.getWidth();
                    int height = image.getHeight();

                    fondObject.setHeight(height);
                    fondObject.setWidth(width);

                    int gridPartWidth = 50;
                    int gridPartHeight = 50;


                    for (int x = 0; x < width; x++) {
                        for (int y = 0; y < height; y++) {

                            int rgb = image.getRGB(x, y);

                            Color color = new Color(rgb);

                            if (color.getRed() > 0 && color.getRed() > color.getGreen()) {
                                redCnt++;
                            }

                            if (color.getGreen() > 0 && color.getGreen() > color.getRed()) {
                                greenCnt++;
                            }

                            if (y == gridPartHeight && x == gridPartWidth) {
                                if (gridPartHeight < (height) && gridPartWidth < (width)) {
                                GridImage actionGrid = new GridImage();
                                actionGrid.setGreenPixels(greenCnt);
                                actionGrid.setRedPixels(redCnt);
                                gridPartHeight = gridPartHeight + 50;
                                actionGrid.setGridPartHeightPos(gridPartHeight);
                                gridPartWidth = gridPartWidth + 50;
                                actionGrid.setGridPartWidthPos(gridPartWidth);
                                BufferedImage image1 = image.getSubimage(gridPartWidth, gridPartHeight, 50, 50);
                                actionGrid.setBf(image1);
                                //    System.out.println("ActionGrid: " +actionGrid);
                                gridImageData.addSubImages(actionGrid);
                               }
                            }
                        }
                    }
```

Ich will immer ein Bild ausschneiden mit der Breite 50 und der Höhe 50. Dieses speichre ich dann mit der Anzahl der grünen bzw. roten Pixel in einem Vektor aber irgendwie hängt das hier!

Fehlermeldung: java.awt.image.RasterFormatException: (y + height) is outside of Raster
	at sun.awt.image.ByteInterleavedRaster.createWritableChild(ByteInterleavedRaster.java:1233)
	at java.awt.image.BufferedImage.getSubimage(BufferedImage.java:1160)
	at fondsPix.PixReader.<init>(PixReader.java:79) usw...

Hoffe mir kann jemand helfen


----------



## HarryHut (13. März 2006)

Bütte Hilfe!


----------



## flashray (13. März 2006)

Hallo Harry,

kannst du mal die ganze Klasse eventuell auch ein paar Klassen anfügen. Was ist GridImage, gridimagedata ...?

Ein komplettes Beispiel wäre hilfreicher!

Vg Erdal


----------



## HarryHut (13. März 2006)

In GridImage wird das SubImage, die Position der SubBilder und die grünen und roten Pixel gespeichert!
GridImageData ist eine Liste mit GridImages, aus dieser Liste werden später die SubImages ausgelesen.

Das Problem ist das ich nicht genau weiß wie ich ein Bild das aus 833x850 Pixeln besteht in Zellen a 50x50 Pixel aufteile und zu jeweils der Zelle die Anzahl der grünen/roten Pixel speicher!

Die beiden for-schleifen laufen das komplette Bild ab und jetzt habe ich gedacht dass ich immer wenn die x und y werte 50x50, 100x100 usw... durchlaufen dass ich dann das durch meine if abfangen und speichern kann aber das geht nicht!


----------



## HarryHut (14. März 2006)

Kann denn niemand meine schleifen anpassen dass sie bei 50x50, 100x100 usw... ein neues GridImage machen und die grünen/roten Pixel setzt?

Danke!


----------

