Entwickler-Ecke

Algorithmen, Optimierung und Assembler - Hintergrundbild skalieren, Deformation berechnen


schlumsch - Do 25.02.10 23:05
Titel: Hintergrundbild skalieren, Deformation berechnen
Hallo allerseits,

ich sitze hier vor einem Problem bei dem ich ständig Ideen für eine Lösung habe, mirt dann aber immer ab einem gewissen Punkt auffällt das es doch so nicht geht. Vielleicht kann mir jemand helfen.


Ich möchte ein Bild als Hintergrundbild auf dem Desktop anzeigen. Das Bild soll auf die jeweilige Auflösung des Monitors skaliert werden, allerdings nur wenn die Deformation des Bildes nicht zu groß wird. Hat jemand eine Idee, wie ich das berechnen kann um dann zum Beispiel zu sagen: skaliere nur wenn die Deformation < x ist???

Vielleicht hat ja schon jemand mal so etwas gemacht und kann mir da einen Rat geben, thx


Niko S. - Do 25.02.10 23:15

Naja teile doch einfach die Höhe durch die Breite.
Dann bekommst du nen bestimmten Wert.
Nach der Deformation, schauste dir den Differenzwert an, und stellst dir das so ein, wie du das haben willst.
Beispielsweise hat 600 / 800 = 0,75 und wenn du nun ein anderes bild hast meinetwegen, 1440 x 900 und rechnest
900 / 1440 = 0,625 davon die differenz wären 0,125.
Wenn du dann nun ein hochkant Bild hast wäre das beispielsweise 1440 / 900 = 1,6.
davon die Differenz wäre deutlich über 0,125.


schlumsch - Fr 26.02.10 11:16

Hmmm, dein beispiel klingt erstmal logisch. Bestimme ich das verhältnis vom Monitor am Besten via Breite / Höhe oder andersrum? Wie verhält es sich mit dem Bild - du meinst zuerst skalieren und dann das Verhältnis berechnen, wobei ich davon ausgehe das ich wie auch schon zuvor Breite / Höhe als Wert nehe. Kann ich das ganze nicht auch vor dem skalieren des Bildes machen? Also mit der Originalgröße?


Niko S. - Fr 26.02.10 12:05

Okay mal hier die reihenfolge:

1. Höhe / Breite

2. VOR dem Stretchen Höhe / Breite ausrechnen des Bildes ausrechnen

3. VOR dem Stretchen neue Höhe / Breite ausrechnen, du weißt ja wohin du das Bild stretchen willst.

4. VOR dem Stretchen prüfen, ob der Wert zu sehr schwankt.

Also das alles geschieht VORHER.


schlumsch - Fr 26.02.10 21:30

Ja ich danke dir. Ich hab das ganze nochmal durchdacht und so wird ein Schuh draus. Allerdings kann ich es mir schenken das Verhältnis zu berechnen welches das verzgrößerte/ verkleinerte Bild hätte ... das ist ja gleich dem Verhältnis der originalen Bildgröße. Ja, a weng verwirrend :) jedenfalls danke ich für den Denkanstoss ...


Niko S. - So 28.02.10 16:17

Nicht wenn das nicht deformierte Bild hochkannt ist.
Wenn du von einem 800x600 Bild das verhältnis nimmst und dann ein 640x480 bist nimmst, ist klar, beide Werte gleich.
Was aber auch gleichzeitig heißt, dass es nur verkleinert und nicht deformiert ist ;D