Moinmoin,
habe ein kleines Javaprogramm geschrieben, das bilder mittels parameter übergeben bekommt und die dann in Bilder umwandelt die 1.2megapixel haben. Leider funktioniert es noch nicht, dass sie nach der Skalierung 1.2Megapixel haben. Die erste Frage also: Warum nicht?
Die 2. Frage, die mir eigentlich noch wichtiger ist:
das ganze läuft unfassbar langsam. Wofür normale Bildbearbeitungsprogramme keine Sekunde brauchen, das wird hier in etwa 20Sekunden erledigt. Warum dauert das so lange?! Oder besser: Wie geht es schneller?
Freue mich auf Antworten,
Gruß
porno
habe ein kleines Javaprogramm geschrieben, das bilder mittels parameter übergeben bekommt und die dann in Bilder umwandelt die 1.2megapixel haben. Leider funktioniert es noch nicht, dass sie nach der Skalierung 1.2Megapixel haben. Die erste Frage also: Warum nicht?
Die 2. Frage, die mir eigentlich noch wichtiger ist:
das ganze läuft unfassbar langsam. Wofür normale Bildbearbeitungsprogramme keine Sekunde brauchen, das wird hier in etwa 20Sekunden erledigt. Warum dauert das so lange?! Oder besser: Wie geht es schneller?
Code:
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
class imageResizer{
public static void main(String[] args){
for(int i=0;i<args.length;i++){
try {
Image img = new ImageIcon(ImageIO.read(new File(args[i]))).getImage();
int sizeX=img.getWidth(null);
int sizeY=img.getHeight(null);
int MegPix=sizeX*sizeY;
double rel=1200000.0/(double)MegPix;
int wNew=(int)(rel*sizeX);
int hNew=(int)(rel*sizeY);
System.out.println("Now scaling image...");
Image scaledImage = img.getScaledInstance(wNew, hNew, Image.SCALE_SMOOTH);
System.out.println(" ...image scaled");
System.out.println("Now buffering image...");
BufferedImage outImg = new BufferedImage(wNew, hNew, BufferedImage.TYPE_INT_RGB);
System.out.println(" ...image buffered");
System.out.println("Now getting image graphics...");
Graphics g = outImg.getGraphics();
System.out.println(" ...image graphics received");
System.out.println("Now drawing image...");
g.drawImage(scaledImage, 0, 0, null);
System.out.println(" ...image drawn");
System.out.println("Now writing image...");
ImageIO.write(outImg, "jpeg", new File("resz_"+args[i]));
System.out.println(" ...image written");
g.dispose();
} catch (IOException e) {
e.printStackTrace();
}
}
System.exit(0);
}
}
Freue mich auf Antworten,
Gruß
porno