2016-06-16 11 views
0

Ich habe ein Problem. Ich habe ein Bild, das von einer Kamera kommt. Ich strecke das Bild in einer Viewbox, die 877 * 877 Pixel groß ist. Das Kamerabild kann eine Auflösung von m 100 * 100 px bis 3000 * 3000 px haben. Im Moment wird das komplette Bild innerhalb der ViewBox mit Hilfe von Windows.ScaleTransform gestreckt. Ich habe auch eine Zoom-Funktion in der Software, die richtig funktioniert. Es funktioniert auch mit Windows.ScaleTransform. Es sieht wie folgt aus:
enter image description hereWie berechnet man den richtigen Zoomfaktor?

Nun zu meinem Problem: Der Zoomfaktor beträgt 100% sein (1) wenn die Kamera Bild 877 * 877 ist, aber es ist immer 100%, wenn der Zoom nicht ist Arbeiten. Wenn die Viewbox ein gestrecktes Bild mit 3000x3000 px zeigt, sollte der Zoom 29% und nicht 100% betragen. Irgendeine Idee, wie ich das schaffen kann?

Ich freue mich auf eine Antwort. Grüße Richard

+0

Im Moment unklar, es ist, was Sie fordern. Kann man den Zoomfaktor nicht einfach auf 29% (oder besser: 877/actual_resolution) setzen? – Heinzi

+0

@Heinzi Ohne Zoom könnte ich die 877/actual_resolution verwenden, aber wenn ich die actual_resolution heranzoomen ändere ich nichts. Es hat einfach die Pixelgröße in der ViewBox geändert, also sind die Pixel größer – Evosoul

+0

Also, stellen Sie es zunächst auf 29% und lassen Sie dann den Benutzer zoomen? (Vielleicht würde ein [MCVE] helfen, Ihr Problem zu verstehen.) – Heinzi

Antwort

1
int max = img.width > img.height ? img.width : img.height; 
int percent = ViewWindowSize/max * 100; 
+0

Das funktioniert, wenn ich nicht zoome. Wenn ich zoome, dank der windows.ScaleTransform, haben die ViewWindowSize und die max immer noch die gleiche Größe. Die Pixelgröße ändert sich einfach. Also muss ich auch Pixelsize oder Zoomfactor zur Formel hinzufügen – Evosoul

+0

Vielleicht sollten Sie ein bisschen mehr erklären, was es tut und/oder warum es funktioniert? –

+0

Ändern Sie ViewWindowSize/max in (ViewWindowSize * PixelSize)/max –

Verwandte Themen