Du könntest dir eine Funktion schreiben, die dafür sorgt, dass dein Bild richtig skalliert wird bzw. du die richtigen x und y-Werte für das Bild bekommst *fg*
Pseudocode:
// rückgabewert (Array) ist der skalierte x und y wert, die dann für die Funktion getScaledInstance genutzt werden kann
// input sind x und y des original Bildes
public int[,] GetScalierteBildgroesse (int x, int y)
{
int [,] rueckgabewert = { x, y}
// prüfe ob x die Bildlänge überschreitet
if(rueckgabewert[0] > Fenstergröße_in_x-richtung)
{
// ermittel Scalierungsfaktor
int faktor1 = rounde_auf(rueckgabewert[0] / Fenstergröße_in_x-richtung)
rueckgabewert[0] = runde_ab(rueckgabewert[0] /faktor1) // x-wert
rueckgabewert[1] = runde_ab(rueckgabewert[1] /faktor1) // y-wert
}
// prüfe ob y die Bildlänge überschreitet
if(rueckgabewert[1] > Fenstergröße_in_y-richtung)
{
// ermittel Scalierungsfaktor
int faktor2 = rounde_auf(rueckgabewert[1] / Fenstergröße_in_y-richtung)
rueckgabewert[0] = runde_ab(rueckgabewert[0] /faktor2) // x-wert
rueckgabewert[1] = runde_ab(rueckgabewert[1] /faktor2) // y-wert
}
return rueckgabewert
}
|