PingpongRueppel
Mitglied
Hallo!
Ich habe ein Script zum Hochladen, bearbeiten [Dimensionen, nichts anderes] und Speichern von Bildern.
Zur zeit arbeitet das Script so, das ich vorgegebene Werte habe, d.h. ein Bild in landscape Modus bekommt die Werte 450 und 338, im Potrait 338 und 450. Alles schön und gut - funktioniert seit einem Jahr einwandfrei.
Jetzt allerdings möchte ich, das das Bild dynamisch bearbeitet wird - d.h. ich auch mal beschnittene Fotos hochladen kann, ohne das die dann in den Standarddimensionen 450/338 oder 338/450 dann verzehrt werden.
Im Grund muss ich also das Verhältniss zwischen Bildbreite und Höhe herausbekommen. Je nachdem, ob das Bild dann breiter als hoch ist oder höher als breit, muss ich dann einfach einen Maximalwert [450] durch das Bildverhältniss teilen, und dann die beiden Werte den entsprechenden Bilddaten zuordnen. In der Theorie ganz einfach.
Jetzt kommt aber mein Problem:
Die Bilddaten werden alle als Integer erfaßt - was keine Kommazahlen zuläßt. Von normalen Photos ist der Ratio aber bei ca 1.33. Was ich also machen muss, ist, die 450 durch den Ratio zu teilen, und die dabei entstehende Zahl wieder auf eine normale Integerzahl zu runden, sodass ich am Ende wieder mit einem Integerwert arbeite.
[BSP: 450 / 1.33 = 338,34586
Am Ende brauch ich die 338 als Integer].
Vorraussetzungen:
int genwidth - zum Beispiel 1024
int genheight - zum Beispiel 768
float genratio [kann meinetwegen auch double oder was auch immer sein]
genratio = genwidth / genratio
dimension_big = 450
dimension_small = 450 / genratio
Ziel:
Integerwert von dimension_big - im Beispiel 450
Integerwert von dimension_small - im Beispiel 338
Ich brauch die Lösung asap.
Ich habe ein Script zum Hochladen, bearbeiten [Dimensionen, nichts anderes] und Speichern von Bildern.
Zur zeit arbeitet das Script so, das ich vorgegebene Werte habe, d.h. ein Bild in landscape Modus bekommt die Werte 450 und 338, im Potrait 338 und 450. Alles schön und gut - funktioniert seit einem Jahr einwandfrei.
Jetzt allerdings möchte ich, das das Bild dynamisch bearbeitet wird - d.h. ich auch mal beschnittene Fotos hochladen kann, ohne das die dann in den Standarddimensionen 450/338 oder 338/450 dann verzehrt werden.
Im Grund muss ich also das Verhältniss zwischen Bildbreite und Höhe herausbekommen. Je nachdem, ob das Bild dann breiter als hoch ist oder höher als breit, muss ich dann einfach einen Maximalwert [450] durch das Bildverhältniss teilen, und dann die beiden Werte den entsprechenden Bilddaten zuordnen. In der Theorie ganz einfach.
Jetzt kommt aber mein Problem:
Die Bilddaten werden alle als Integer erfaßt - was keine Kommazahlen zuläßt. Von normalen Photos ist der Ratio aber bei ca 1.33. Was ich also machen muss, ist, die 450 durch den Ratio zu teilen, und die dabei entstehende Zahl wieder auf eine normale Integerzahl zu runden, sodass ich am Ende wieder mit einem Integerwert arbeite.
[BSP: 450 / 1.33 = 338,34586
Am Ende brauch ich die 338 als Integer].
Vorraussetzungen:
int genwidth - zum Beispiel 1024
int genheight - zum Beispiel 768
float genratio [kann meinetwegen auch double oder was auch immer sein]
genratio = genwidth / genratio
dimension_big = 450
dimension_small = 450 / genratio
Ziel:
Integerwert von dimension_big - im Beispiel 450
Integerwert von dimension_small - im Beispiel 338
Ich brauch die Lösung asap.