Autor Beitrag
schlumsch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 122

alles Win :)
Delphi 2005 Prof, Delphi 2007
BeitragVerfasst: Do 25.02.10 23:05 
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

_________________
icq 102779206
"God is real, unless declared integer..."
Niko S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 122

alles Win :)
Delphi 2005 Prof, Delphi 2007
BeitragVerfasst: 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?

_________________
icq 102779206
"God is real, unless declared integer..."
Niko S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 122

alles Win :)
Delphi 2005 Prof, Delphi 2007
BeitragVerfasst: 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 ...

_________________
icq 102779206
"God is real, unless declared integer..."
Niko S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 566
Erhaltene Danke: 10

Win 7, Ubuntu
Lazarus, Turbo Delphi, Delphu 7 PE
BeitragVerfasst: 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