3 Stimmen

Wie berechnet man die proportionale Breite eines Bildes basierend auf seiner Höhe?

Wie berechnet man die proportionale Breite eines Bildes basierend auf seiner Höhe?

Ich meine, wir kennen nur die Höhe eines Bildes.

string pathToImage = System.IO.Path.Combine(Settings.ContentFolderPath, file);

Image image = new Image();
BitmapImage src = new BitmapImage();
src.BeginInit();
src.UriSource = new Uri(pathToImage, UriKind.Absolute);
src.EndInit();
image.Source = src;
image.Stretch = Stretch.Uniform;
image.Height = canvas1.Height;  
image.Width = ???; 

Danke!


AKTUALISIERUNGEN (1)

Danke an alle, die mir geholfen haben.

Und bitte dumme Leute, wählt nicht ab...

AKTUALISIERUNGEN (2)

Die Lösung:

string pathToImage = System.IO.Path.Combine(Settings.ContentFolderPath, file);

Image image = new Image();
BitmapImage src = new BitmapImage();
src.BeginInit();
src.UriSource = new Uri(pathToImage, UriKind.Absolute);
src.EndInit();
double ratio = src.Width / src.Height; 
image.Source = src;
image.Stretch = Stretch.Uniform;
image.Height = canvas1.Height;  
image.Width = canvas1.Height * ratio;

29voto

Rich O'Kelly Punkte 40414

Bei bekannter Höhe und Breite:

var ratio = image.Height / image.Width;

Bei bekannter Höhe und Ratio:

var width = image.Height / ratio;

Bei bekannter Breite und Ratio:

var height = image.Width * ratio;

Um die anderen Werte zu berechnen, müssen Sie zwei von drei kennen.

7voto

dthorpe Punkte 34584
  1. Berechnen Sie das Verhältnis von Breite zu Höhe: ursprüngliche Breite / ursprüngliche Höhe
  2. Multiplizieren Sie das Breite/Höhe-Verhältnis mit der neuen gewünschten Höhe, um die neue Breite entsprechend der neuen Höhe zu erhalten.

Sie können das ursprüngliche Bildseitenverhältnis nicht beibehalten, ohne die ursprüngliche Breite und Höhe des Bildes oder das ursprüngliche Breite/Höhe-Verhältnis (auch Seitenverhältnis genannt) zu kennen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X