Hallo,
ich versuche eine Bilddatei zu laden und sie sofort wieder unter einem anderen Namen zu speichern.
Leider ist die gespeicherte Datei immer schwarz und nie das geladenen Bild. Was mache ich nur falsch? Ich habe unten meinen Code gepostet, vielleicht könnte mir jemand weiterhelfen. Vielen Dank,
Jörg
ich versuche eine Bilddatei zu laden und sie sofort wieder unter einem anderen Namen zu speichern.
Leider ist die gespeicherte Datei immer schwarz und nie das geladenen Bild. Was mache ich nur falsch? Ich habe unten meinen Code gepostet, vielleicht könnte mir jemand weiterhelfen. Vielen Dank,
Jörg
Code:
....
String dateiname = "landschaft.jpg";
BufferedImage scrImage;
Graphics2D scrGraphic;
Rectangle bounds = getBounds();
int thumbHeight = bounds.height;
int thumbWidth = bounds.width;
double thumbRatio = (double) thumbWidth / (double) thumbHeight;
Image image = Toolkit.getDefaultToolkit().getImage(
"sommer.jpg");
int imageWidth = image.getWidth(null);
int imageHeight = image.getHeight(null);
double imageRatio = (double) imageWidth / (double) imageHeight;
if (thumbRatio < imageRatio) {
thumbHeight = (int) (thumbWidth / imageRatio);
}
else {
thumbWidth = (int) (thumbHeight * imageRatio);
}
scrImage = new BufferedImage(thumbWidth, thumbHeight,
BufferedImage.TYPE_INT_RGB);
scrGraphic = scrImage.createGraphics();
scrGraphic.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
//scrGraphic.setBackground(Color.BLACK);
scrGraphic.drawImage(image, 0, 0, thumbWidth, thumbHeight, null);
ImageIO.write(scrImage, "jpeg", new File(dateiname));