Huhu zusammen,
ich hab mir ein bißchen was rausgesucht, um ein Bild zu resizen. Dabei soll aber nicht einfach nur das Bild geresized werden sondern das auch noch in einer Relation. Sprich wird Y um 10 Prozent kleiner auf 100 pixel gesetzt soll X nicht auch auf einen starren Wert, wie z.B. 100 gesetz werden, sondern einfach um 10 Prozent kleiner gemacht werden. Außerdem soll X nicht größer sein als 100 pixel, ansonsten wird die größe von Y angepasst.
Problem ist hier neben dem, dass er irgendwie in dem Double relation nur ganze Zahlen speichert (bsp. 4.0 statt 4.4, was eigentlich rauskommen müsste), dass er einfach das Bild nicht resizt
.
Hier der Code der View:
Code für Controlermethode:
Jemand eine Idee? Danke schonmal!
ich hab mir ein bißchen was rausgesucht, um ein Bild zu resizen. Dabei soll aber nicht einfach nur das Bild geresized werden sondern das auch noch in einer Relation. Sprich wird Y um 10 Prozent kleiner auf 100 pixel gesetzt soll X nicht auch auf einen starren Wert, wie z.B. 100 gesetz werden, sondern einfach um 10 Prozent kleiner gemacht werden. Außerdem soll X nicht größer sein als 100 pixel, ansonsten wird die größe von Y angepasst.
Problem ist hier neben dem, dass er irgendwie in dem Double relation nur ganze Zahlen speichert (bsp. 4.0 statt 4.4, was eigentlich rauskommen müsste), dass er einfach das Bild nicht resizt
Hier der Code der View:
Java:
Label lbl = new Label(comp, SWT.BORDER);
Image img;
ImageData imgData = new ImageData("C:/rust.jpg");
controler.getPictureSize(imgData);
img = new Image(display, imgData);
lbl.setImage(img);
Code für Controlermethode:
Java:
public ImageData getPictureSize(ImageData imgData) {
int x;
int y = 100;
int picX = imgData.width;
int picY = imgData.height;
if (picY == y) {// sind die Bildgroesse und die Verlangte groesse
// gleich, passt sowieso alles
if (picX <= 100) {
return imgData;
}else{
x = 100;
double relation = picX / x;
y = (int)(picY / relation);
}
} else {
double relation = picY / y;
x = (int)(picX / relation);
if (x >= 100) {
}
}
imgData.scaledTo(x, y);
return imgData;
}
Jemand eine Idee? Danke schonmal!