Bildausschnitte zoomen / verschieben mit WPF

07/09/2009 - 17:39 von Joachim Fuchs | Report spam
Hi,

mal wieder das Thema Bilddarstellung:

Ausgangsmaterial: Digitalfotos in verschiedenen Auflösungen (z. B. 8
Megapixel)
Ausgabegeràt: FullHD-TV (1920 x 1080 Pixel)

Einen Bildausschnitt auszuwàhlen und auf dem Monitor darzustellen, ist ja
nicht das Problem. Ich möchte aber per Animation sanft von einem Ausschnitt
zu einem anderen Ausschnitt innerhalb desselben Fotos wechseln. Dabei kann
sich sowohl die Position wie auch die Größe des Ausschnitts veràndern (bei
gleichbleibendem Seitenverhàltnis).

Mein erster Ansatz:
Verwendung eines ImageBrush-Objektes für den Hintergrund eines Usercontrols.
Über ViewBox / ViewPort lassen sich die Ausschnitte wie gewünscht festlegen.
Eine mehrsekündige Animation (über Dispatcher-Timer) wirkt aber leider
hakelig.

Der zweite Versuch:
Ein Image-Control mit Stretch auf None, so dass es die Abmessungen des
Bildes annimmt. Dann kann der Ausschnitt über RenderTransform festgelegt
werden. Animation über Storyboard, ruckelt aber noch stàrker.

Im Moment fàllt mir nichts einfaches mehr ein. Alle ausprobierten Varianten
führen zu 100% CPU-Last auf dem ausführenden CPU-Kern. Die
DirectX-Beschleunigung wird für das Rendering vermutlich nicht aktiviert.

Hat jemand Tipps und Tricks auf Lager, wie man die Performance der
Animationen verbessern kann? Oder ganz andere Lösungsansàtze?

Gruß
Joachim

Dr. Joachim Fuchs - Autor - Dozent - Softwarearchitekt
http://www.fuechse-online.de/beruflich/index.html
 

Lesen sie die antworten

#1 Joachim Fuchs
07/09/2009 - 18:11 | Warnen spam
Korrektur:

habe gerade nochmal die CPU-Belastung überprüft, die ist gewöhnlich doch
nicht so hoch. Bei den letzten Messungen ging auch bei ruckeliger Animation
keine CPU auf Vollast.

Gruß
Joachim


Dr. Joachim Fuchs - Autor - Dozent - Softwarearchitekt
http://www.fuechse-online.de/beruflich/index.html -
http://vbnet.codebooks.de
"Joachim Fuchs" schrieb im
Newsbeitrag news:%
Hi,

mal wieder das Thema Bilddarstellung:

Ausgangsmaterial: Digitalfotos in verschiedenen Auflösungen (z. B. 8
Megapixel)
Ausgabegeràt: FullHD-TV (1920 x 1080 Pixel)

Einen Bildausschnitt auszuwàhlen und auf dem Monitor darzustellen, ist ja
nicht das Problem. Ich möchte aber per Animation sanft von einem
Ausschnitt zu einem anderen Ausschnitt innerhalb desselben Fotos wechseln.
Dabei kann sich sowohl die Position wie auch die Größe des Ausschnitts
veràndern (bei gleichbleibendem Seitenverhàltnis).

Mein erster Ansatz:
Verwendung eines ImageBrush-Objektes für den Hintergrund eines
Usercontrols. Über ViewBox / ViewPort lassen sich die Ausschnitte wie
gewünscht festlegen. Eine mehrsekündige Animation (über Dispatcher-Timer)
wirkt aber leider hakelig.

Der zweite Versuch:
Ein Image-Control mit Stretch auf None, so dass es die Abmessungen des
Bildes annimmt. Dann kann der Ausschnitt über RenderTransform festgelegt
werden. Animation über Storyboard, ruckelt aber noch stàrker.

Im Moment fàllt mir nichts einfaches mehr ein. Alle ausprobierten
Varianten führen zu 100% CPU-Last auf dem ausführenden CPU-Kern. Die
DirectX-Beschleunigung wird für das Rendering vermutlich nicht aktiviert.

Hat jemand Tipps und Tricks auf Lager, wie man die Performance der
Animationen verbessern kann? Oder ganz andere Lösungsansàtze?

Gruß
Joachim

Dr. Joachim Fuchs - Autor - Dozent - Softwarearchitekt
http://www.fuechse-online.de/beruflich/index.html

Ähnliche fragen