Probleme mit ImageIO.writer und reader

Benzol

Erfahrenes Mitglied
Bin als Anfänger so ziehmlich Überfordert atm... :( Ich hoffe, Ihr könnt mir nochmals helfen

Mein Code sieht bisher folgender Maßen aus:

Code:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.*;
import java.io.File;
import java.awt.image.*;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;

public class test extends java.applet.Applet {
   
   
    public void init()
    {
         //Pfadangabe laden
         String sPfad = "c:\\bild.jpg";
        
        //Wurde ein Dateipfad übergeben?
        if(sPfad.length() > 0)
        {
            //Ein neues Dateiobjekt deklarieren
            File fPfad = new File (sPfad);
            
            if(fPfad.exists())
            {
                 //Ist es ein Ordner oder eine Datei?
                if(fPfad.isFile())
                {
                    //Lokale Bilddatei laden
                    //Image image = getImage(getDocumentBase(), fPfad.getParent());
                    BufferedImage image = ImageIO.read(new File(fPfad.getParent()));
                    //Skaliertes Bild erzeugen
                    Image imageScaled = image.getScaledInstance(20, 10, Image.SCALE_SMOOTH);
                    //Neue Datei erzeugen
                    File fileImage = new File("test.jpg"); 
                    //Skaliertes Bild casten
                    BufferedImage scaledBufferedImage = new BufferedImage(20, 10, BufferedImage.TYPE_INT_RGB);
                    scaledBufferedImage.getGraphics().drawImage(imageScaled, 0, 0, null);
                    //Bild in Datei schreiben
                    ImageIO.write( scaledBufferedImage,"jpg",fileImage);
                }
            }
        }
    }
    
    public void paint (Graphics g) 
    {
        //img = getImage( getDocumentBase(), "bild.jpg");
        g.drawString ("Geht", 150, 180);
    }
   
}
Ich gehe davon aus, das ich die Meisten inports garnicht brauche... aber Ihr wisst ja wie das ist, wenn mal Wild am probieren ist ;)
Ich bekomme bei diesem Code jeweils an den stellen von ImageIO.reader und writer den Fehler
Code:
unreported exception java.io.IOException; must be caught or declared to be thrown
Ich verstehe noch nicht wirklich was damit gemeint ist. Ich hoffe, Ihr könnt mir da weiterhelfen. Achso, ich weis nicht, ob das von Relevanz ist, aber soll sich hier um ein Applet handeln :rolleyes:
 
Hi,

versuch mal das hier:

Code:
import java.awt.*;
import java.io.File;
import java.io.IOException;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;

public class TestApplet extends java.applet.Applet {

    public void init() {
        //Pfadangabe laden
        String sPfad = "c:\\bild.jpg";

        //Wurde ein Dateipfad übergeben?
        if (sPfad.length() > 0) {
            //Ein neues Dateiobjekt deklarieren
            File fPfad = new File(sPfad);

            if (fPfad.exists()) {
                //Ist es ein Ordner oder eine Datei?
                if (fPfad.isFile()) {
                    //Lokale Bilddatei laden
                    //Image image = getImage(getDocumentBase(), fPfad.getParent());
                    BufferedImage image = null;
                    try {
                        image = ImageIO.read(new File(fPfad.getParent()));
                    }
                    catch (IOException e) {
                        e.printStackTrace();
                    }
                    //Skaliertes Bild erzeugen
                    if (image != null) {
                        Image imageScaled = image.getScaledInstance(20, 10, Image.SCALE_SMOOTH);
                        //Neue Datei erzeugen
                        File fileImage = new File("TestApplet.jpg");
                        //Skaliertes Bild casten
                        BufferedImage scaledBufferedImage = new BufferedImage(20, 10, BufferedImage.TYPE_INT_RGB);
                        scaledBufferedImage.getGraphics().drawImage(imageScaled, 0, 0, null);
                        //Bild in Datei schreiben
                        try {
                            ImageIO.write(scaledBufferedImage, "jpg", fileImage);
                        }
                        catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        }
    }

    public void paint(Graphics g) {
        //img = getImage( getDocumentBase(), "bild.jpg");
        g.drawString("Geht", 150, 180);
    }
}

Du hattest vergessen die IOException abzufangen. Welche man abzufangen hat steht in der API an der jeweiligen Methode / Klasse.

Es gibt in Java einige Konventionen an die man sich halten sollte ( kein Muss). Damit meine ich z.B. Klassennamen beginnen mit einem Großbuchstaben, usw...

Gruß

Romsl
 
Ich danke dir, das Problem mit dem Fehler ist jetzt beseitigt :) Ich werde mir die Konventionen nochmal durchlesen.. später ;)
Was mich jetzt viel mehr interessieren würde ist, warum das Applet keine Datei erzeugt, worin das kleingerechnete Bild reingeschrieben wird. Kann mir da vllt. noch jemand Helfen... muss ja jetzt irgentwo ein Logikfehler drinne sein.
 
Zurück