• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Files skalieren?

Status
Für weitere Antworten geschlossen.

Break

Neues Mitglied
Moin, Hab ein File das ein Bild (*.jpg, *.gif, *tiff) ist. Falls das Bild zu groß ist möchte ich das Bild verkleinern (z.B. 600 * 400). Weiss einer ob das möglich ist, oder muss ich das kleinere Bild erst mal komplett neu zeichnen?
 
Hallo,
mit dem folgenden Code müsste es gehen(das Bild wird verkleinert ohne angezeigt zu werden):
Code:
import java.io.*;
import java.awt.image.*;
import javax.imageio.*;
import java.awt.*;

public class BildSkalierer implements ImageObserver {
    //Bild skalieren
    BufferedImage bild = null;
    
    public boolean imageUpdate(Image img, int infoflags, int x, int y, int width, int height) {
        return false;
    }

    public void bildSkalieren(File image, int breite, int höhe) {
    
        //Bilddatei öffnen
        try {
            bild = ImageIO.read(image);
        } catch(Exception e) {
            e.printStackTrace();
            return;
        }
    
        if(bild == null) 
            return;
    
        BufferedImage neuesBild = new BufferedImage(breite, höhe, BufferedImage.TYPE_INT_RGB);
        Graphics2D g = neuesBild.createGraphics();
        //Bild skalieren
        g.drawImage(bild.getScaledInstance(breite, höhe, Image.SCALE_SMOOTH), 0, 0, breite, höhe, this);
    
        if(neuesBild == null) 
            return;
    
        //Bild speichern
        try {
            ImageIO.write(neuesBild, image.getName().substring(image.getName().lastIndexOf(".") + 1, image.getName().length()), image);
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
    
    public static void main(String[] args) {
        if(args[0] == null) 
            return;
        
        BildSkalierer scale = new BildSkalierer();
        scale.bildSkalieren(new File(args[0]), 600, 400);
    }
}
musst du noch ausprobieren und ggf anpassen
mfg Bleistift
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben