Hallo zusammen,
Ich bin atm daran ein Tool zu bauen, bei welchem man Fotos aus einem Verzeichnis laden kann, die Seitenverhältnisse bestimmen kann und anschliessend diese per SFTP Verbindung in eine Webgalerie stellen kann.
Nun stehe ich bei folgendem Problem an:
Ein Foto ist durchschnittlich 3.5MB gross. Davon habe ich ca. 60-80 Stück pro Verzeichnis.
Wenn ich nun ein Foto auf die grösse 800x600 skalieren will und danach noch komprimieren will. Dauert dies pro Foto ca. 3 sek. Was hochgerechnet ca. 4-5 min dauert. Zu lange für mich
Gibt es eine alternative Möglichekeit Fotos zu skalieren und zu komprimieren?
Source:
Danke für eure Hilfe.
Ich bin atm daran ein Tool zu bauen, bei welchem man Fotos aus einem Verzeichnis laden kann, die Seitenverhältnisse bestimmen kann und anschliessend diese per SFTP Verbindung in eine Webgalerie stellen kann.
Nun stehe ich bei folgendem Problem an:
Ein Foto ist durchschnittlich 3.5MB gross. Davon habe ich ca. 60-80 Stück pro Verzeichnis.
Wenn ich nun ein Foto auf die grösse 800x600 skalieren will und danach noch komprimieren will. Dauert dies pro Foto ca. 3 sek. Was hochgerechnet ca. 4-5 min dauert. Zu lange für mich
Gibt es eine alternative Möglichekeit Fotos zu skalieren und zu komprimieren?
Source:
Java:
public class FotoCompresser {
private String tempPathImages = "C:/Programme/MetalNetFU/Temp";
private String tempPathThumbs = "C:/Programme/MetalNetFU/Temp/Thumbs";
private int x;
private int y;
private RenderedImage rendImage;
public FotoCompresser(int x, int y) {
this.x = x;
this.y = y;
}
public void compress(File file) {
int scaledX, scaledY;
try {
Image img = new ImageIcon(ImageIO.read(file)).getImage();
if (img.getHeight(null) < img.getWidth(null)) {
scaledX = x;
scaledY = y;
} else {
scaledX = y;
scaledY = x;
}
Image scaledImage = img.getScaledInstance(scaledX, scaledY,
Image.SCALE_SMOOTH);
BufferedImage bufferedImage = new BufferedImage(scaledX, scaledY,
BufferedImage.TYPE_INT_RGB);
Graphics2D g = (Graphics2D) bufferedImage.getGraphics();
g.drawImage(scaledImage, 0, 0, null);
try {
File f = new File(tempPathImages + "/" + file.getName());
JimiRasterImage jrf = Jimi.createRasterImage(scaledImage
.getSource());
Jimi.putImage("image/jpeg", jrf, new FileOutputStream(f));
} catch (JimiException je) {
je.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
}
}
Danke für eure Hilfe.