# BufferedImage > Integer.MAX_VALUE



## Riwolfes (5. Jul 2011)

Hallo,
ich arbeite für ein Projekt an einem Programm was ein Bild bearbeitet(zb. trimmt). Insgesamt erfüllt das Programm seinen Zweck, jedoch soll es mit grossen Bildern arbeiten. Problem ist hierbei das beim laden des Bildes als BufferedImage die Interger Begrenzung überschritten wird und es somit grösser ist als erlaubt. 

```
BufferedImage load = ImageIO.read(picture) ;
```

Folgendes wird mir als Fehler wiedergegeben:

```
xception in thread "main" java.lang.IllegalArgumentException: Array size > Integer.MAX_VALUE!
	at javax.imageio.ImageTypeSpecifier.createBufferedImage(ImageTypeSpecifier.java:1064)
	at javax.imageio.ImageReader.getDestination(ImageReader.java:2879)
	at com.sun.imageio.plugins.png.PNGImageReader.readImage(PNGImageReader.java:1263)
	at com.sun.imageio.plugins.png.PNGImageReader.read(PNGImageReader.java:1560)
	at javax.imageio.ImageIO.read(ImageIO.java:1422)
	at javax.imageio.ImageIO.read(ImageIO.java:1282)
```

Was könnte ich nutzen damit das Bild trotzdem geladen wird?


----------



## Runtime (5. Jul 2011)

Du könntest das Bild in 4 Teile schneiden und dann einzeln laden und zeichnen.


----------



## Kr0e (5. Jul 2011)

Arraysize > als 2gb  ? Ich hoffe du hast genug Arbeitsspeicher fuer sowas


----------



## Empire Phoenix (5. Jul 2011)

Bei sowas hilft eingelich nur noc das aufteilen in kleiner Blöcke die dann alle einzeln bearbeitet werden und am ende zusammengefügt werden, schon alleine aus Ram gründen.


----------



## Riwolfes (5. Jul 2011)

1. Um es zu zerschneiden müsste ich es laden...
2. Ich habe ungefähr noch 4 Gb Ram frei, daran sollte es nicht liegen, wobei die Bilder eine Größe von 100 MB haben.


----------



## Kr0e (5. Jul 2011)

Was sagt dir die Exception java.lang.IllegalArgumentException: Array size > Integer.MAX_VALUE! ???

Integer.MAX_VALUE ist 2GB. Wenn ein Bild schon groesser ist als Integer.MAX_VALUE kann da was anderes nicht stimmen...


----------



## Marco13 (5. Jul 2011)

Riwolfes hat gesagt.:


> 2. Ich habe ungefähr noch 4 Gb Ram frei, daran sollte es nicht liegen, wobei die Bilder eine Größe von 100 MB haben.



100 MB ans PNG auf der Platte? Wie Groß ist das Bild in Pixeln (Breite und Höhe) ? Bei einem Bild das Größer ist als ~45000x45000 Pixel wird's eng. Da helfen aber auch 4GB RAM nicht viel...


----------



## Firephoenix (6. Jul 2011)

Hi,
nach der Doku sollte man mit Java Advanced Imaging auch sehr große Bilder bearbeiten (und laden) können.
Evtl ist das dann mal einen Blick wert 
Gruß


----------



## Riwolfes (6. Jul 2011)

Das Bild ist 155530 * 64074 px groß.


----------



## Marco13 (6. Jul 2011)

Das sind 9965429220 pixel (10 Milliarden statt der möglichen 2 Milliarden), und das Bild würde damit ca. 40 GB Speicher belegen. Abhilfe: Mach' es kleiner.


----------

