Png files nach auslesen von BMP ohne Inhalt

Tyrall

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

PHP:
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
 
try this:

Java:
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")); 
      
	}
	
	
	

}
 
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)
 
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
 
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:confused:
 
Lass doch bitte mal mein Programm mit einer fixen BMP aus dem Filesystem laufen. Vielleicht ist das Problem an einer anderen Stelle...
 
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
 
Hi,

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

Java:
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]);
		}
	}

}
 

Neue Beiträge

Zurück