Hi ich möchte ein Bild laden und anschließend speichern.
Der folgende Code zeigt meinen Versuch, allerdings wird beim Speichern nur ein schwarzes Rechteck erstellt.
Was muss ich da korrigieren?
public static void main()
{
int h = 250;
int w = 250;
Image srcImg = Toolkit.getDefaultToolkit().getImage("C:/Users/me/Desktop/BLA/pic.png");
BufferedImage resizedImg = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = resizedImg.createGraphics();
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g2.drawImage(srcImg, 0, 0, w, h, null);
g2.dispose();
try
{
ImageIO.write(resizedImg, "png", new File("C:/Users/me/Desktop/BLA/pic2.png"));
}
catch (IOException e)
{
e.printStackTrace();
}
}
1.) brauchst du Alpha-Kanäle, dann würde ich ein BufferedImage vom Typ TYPE_INT_ARGB nutzen.
2.) Ist das original-Bild auch wirklich 250x250 px groß oder ggf größer? Wenn du das Bild skalieren möchtest, würde ich mit [getScaledInstance](http://docs.oracle.com/javase/7/docs/api/java/awt/Image.html#getScaledInstance(int, int, int)) arbeiten.
@BlupBlup : Du benutzt schon [japi]ImageIO[/japi] zum Schreiben, aber warum nicht auch zum Lesen von Bildern?
Toolkit ist veraltet. Am besten du benutzt ImageIO. Im Wiki findest du auch einen Artikel, wie man das macht.
[QUOTE=L-ectron-X]@BlupBlup : Du benutzt schon [japi]ImageIO[/japi] zum Schreiben, aber warum nicht auch zum Lesen von Bildern?
Toolkit ist veraltet. Am besten du benutzt ImageIO. Im Wiki findest du auch einen Artikel, wie man das macht.[/QUOTE]