# Png files nach auslesen von BMP ohne Inhalt



## Tyrall (16. Juni 2007)

hallo ich lese bmp aus, um sie in PNG zu konvertieren.


```
pictarget=new ImageIcon("c:/test/rad"+z+".bmp").getImage();
				
				  Image org=pictarget;				  	
				  
				 double new_im_w= 200;
				 double new_im_h= 200;

				 int int_im_w = (int) new_im_w;
				 int int_im_h = (int) new_im_h;

				Image scaledImage = org.getScaledInstance(int_im_w,int_im_h, Image.SCALE_SMOOTH);

				 BufferedImage outImg = new BufferedImage(int_im_w, int_im_h,
				 BufferedImage.TYPE_INT_ARGB);
				  	
				 Graphics g = outImg.getGraphics();
				
				 g.drawImage(scaledImage, 0, 0, null);
				 g.dispose();

				 try {
				 ImageIO.write(outImg, "png", new File("c:/test/radl"+z+".png"));
				 } catch (IOException e) {
//				   TODO Auto-generated catch block
				 e.printStackTrace();
				 }
```

mein Problem ist eben das die PNG files nun leer sind, also ohne Inhalt. Was fehlt denn da noch ?

danke schon mal im Voraus


----------



## limago (16. Juni 2007)

try this:


```
package de.tutorials;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

public class PngDemo {

	

	
	
	public static void main(String[] args) throws IOException {
		
        
       Image org=ImageIO.read(new File("test.bmp"));

       Image scaledImage = org.getScaledInstance(200, 200,  Image.SCALE_SMOOTH); 

       BufferedImage outImg = new BufferedImage(200, 200, 
       BufferedImage.TYPE_INT_ARGB); 
             
       Graphics g = outImg.getGraphics(); 
       
       g.drawImage(scaledImage, 0, 0, null); 
       g.dispose(); 

      
       ImageIO.write(outImg, "png", new File("test.png")); 
      
	}
	
	
	

}
```


----------



## Tyrall (16. Juni 2007)

thx. Funktioniert leider auch nicht bekomme folgende Fehlermeldung:

Exception in thread "main" java.io.EOFException
	at javax.imageio.stream.ImageInputStreamImpl.readFully(Unknown Source)
	at com.sun.imageio.plugins.bmp.BMPImageReader.read24Bit(Unknown Source)
	at com.sun.imageio.plugins.bmp.BMPImageReader.read(Unknown Source)
	at javax.imageio.ImageIO.read(Unknown Source)
	at javax.imageio.ImageIO.read(Unknown Source)


----------



## limago (16. Juni 2007)

Das ist seltsam. Dein ursprünglicher Code hat das Bild gar nicht erst eingelesen. Das Rausschreiben ist Ok. 

Deswegen habe ich das Einlesen verändert. Läuft bei mir unter XP Java 6 im Kompatibilitätsmodus 1.4.

Zwei Fragen: Ist das BMP-File vielleicht korrupt. Hast Du mal ein anderes probiert. Hast Du meinen Code ausgeführt und dann diese Meldung erhalten, oder Deinen angepasst? 

Gruss


----------



## Tyrall (16. Juni 2007)

das mit der BMP ist mir auch schon durch den Kopf gegegangen. Das Bitmap wird aus einem Blob gelesen. Aber es wird vorher erstellt, und wird auch korrekt dargestellt nur das konvertieren klappt halt nicht


----------



## limago (16. Juni 2007)

Lass doch bitte mal mein Programm mit einer fixen BMP aus dem Filesystem laufen. Vielleicht ist das Problem an einer anderen Stelle...


----------



## Tyrall (16. Juni 2007)

schon probiert gleicher Fehler


----------



## limago (16. Juni 2007)

Hi, habe das selbe Programm mal mit der Java 1.4 Version Rockit von Bea laufen lassen. Da bekomme ich hier

Image org=ImageIO.read(new File("test.bmp"));


einen Nullzeiger? Selbst wenn ich den Pfad voll qualifiziere. Welche Umgebung benutzt Du denn?

Gruss


----------



## limago (16. Juni 2007)

Hi,

teste doch mal, ob DEine Formate unterstützt werden:


```
package de.tutorials;

import javax.imageio.ImageIO;

public class FormatTest {

	public FormatTest() {

		System.out.println("Unterstützte Eingabe Formate");
		listReaderFormats();
		
		System.out.println("Unterstützte Ausgabe Formate");
		listWriterFormats();
		
		
	}

	public static void main(String[] args) {
		new FormatTest();

	}

	public void listReaderFormats() {

		String[] readerFormats = ImageIO.getReaderFormatNames();

		for (int i = 0; i < readerFormats.length; i++) {
			System.out.println(readerFormats[i]);
		}

	}

	public void listWriterFormats() {

		String[] writerFormats = ImageIO.getWriterFormatNames();

		for (int i = 0; i < writerFormats.length; i++) {
			System.out.println(writerFormats[i]);
		}
	}

}
```


----------



## Tyrall (16. Juni 2007)

ich benutze Eclipse.


----------



## limago (16. Juni 2007)

Ja und weiter? Versionen von Eclipse und Java. Betriebssystem?

Gruss


----------



## Tyrall (16. Juni 2007)

Das ist die Ausgabe bmp wird unterstützt:

Unterstützte Eingabe Formate
BMP
bmp
jpeg
wbmp
gif
png
JPG
jpg
WBMP
JPEG
Unterstützte Ausgabe Formate
BMP
jpeg
bmp
wbmp
png
JPG
PNG
jpg
WBMP
JPEG


----------



## Tyrall (16. Juni 2007)

also antwort auf deine vorherige Frage
Eclipse SDK Version: 3.2.2
Java version 1.6
OS: windows xp home


----------



## limago (16. Juni 2007)

Sehr seltsam! Da der Fehler bei mir nicht nachvollziehbar ist, wird es wohl an der Umgebung liegen. 

Ich kann Dir da im Moment nicht weiter helfen. Ich brauche mehr Infos über die Umgebung. Vielleicht hat sich was verschluckt. Neu Starten kann auch nicht schaden ;-)

Gruss


----------



## Tyrall (16. Juni 2007)

jo trotzdem danke. werd am Montag mal meinen Prof dran lassen  ich post dann nochmal worans lag


----------



## limago (16. Juni 2007)

Genau meine Umgebung! Sehr seltsam!

Gruss


----------

