Halli Hallo
meine Frage ist kurz, ich lade Bilder mit dem Befehl :
|
C-/C++-Quelltext
|
1
|
image = getScaledImages(ImageIO.read(url));
|
getScaled skaliert das Bild einfach nur runter mit :
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
private BufferedImage getScaledImages(BufferedImage in) {
int WIDTH = 160;
int HEIGHT = 120;
BufferedImage out = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = out.createGraphics();
g2.setColor(Color.white);
g2.fillRect(0, 0, WIDTH, HEIGHT);
double width = in.getWidth();
double height = in.getHeight();
double xScale = WIDTH / width;
double yScale = HEIGHT / height;
double scale = 1.0;
scale = Math.min(xScale, yScale); // scale to fit
double x = (WIDTH - width * scale) / 2;
double y = (HEIGHT - height * scale) / 2;
AffineTransform at = AffineTransform.getTranslateInstance(x, y);
at.scale(scale, scale);
g2.drawRenderedImage(in, at);
g2.dispose();
return out;
}
|
Das Problem ist, ich will die Bilder lieber direkt mit geringerer Qualität sprich mit geringerer Auflösung laden, da die Bilder locker 10mb sind und es ca 100-500 Bilder sein werden. Die Bilder lade ich für eine Art Vorschau, sie müssen also nur ca 10% der Original Auflösung haben.
Ideen wie ich das machen kann ? Bei imageIO finde ich nichts =(
edit: benutzt wird Java auf einem Windows PC
Mfg