Laden...

Image proportionen

Erstellt von Massaka vor 19 Jahren Letzter Beitrag vor 19 Jahren 2.043 Views
M
Massaka Themenstarter:in
67 Beiträge seit 2004
vor 19 Jahren
Image proportionen

Hallo Zusammen,

ich erstelle Thumnails in einer Routine und habe nun ein kleines Problemchen mit den Proportionen. Manche Bilder sind halt im Hochformat und andere im Querformat. Gibt es eine Möglichkeit die Proportionen einigermassen zu behalten?

Die Thumbs erstelle ich im Moment wie folgt:


Image.GetThumbnailImageAbort myCallback = new Image.GetThumbnailImageAbort(ThumbnailCallback);
imageArray.Add(MyImage.GetThumbnailImage(90, 90, myCallback, System.IntPtr.Zero));	

Für Ideen und Anregungen wäre ich dankbar 🙂

Reden führt zu unklaren, undeutlichen Dingen. 'George W. Bush'

49.485 Beiträge seit 2005
vor 19 Jahren

Hallo Massaka

spricht etwas gegen folgendes?


if (MyImage.Width > MyImage.Height) {
   iWidth = 90;
   iHeight = 90 * MyImage.Height / MyImage.Width;
} else {
   iWidth = 90 * MyImage.Width / MyImage.Height;
   iHeight = 90;
}
... MyImage.GetThumbnailImage(iWidth, iHeight, myCallback, System.IntPtr.Zero); ...

HTH

herbivore

M
Massaka Themenstarter:in
67 Beiträge seit 2004
vor 19 Jahren

Danke Dir für deine Antowrt..ich werrde dies mal ausprobieren 🙂

Reden führt zu unklaren, undeutlichen Dingen. 'George W. Bush'

M
Massaka Themenstarter:in
67 Beiträge seit 2004
vor 19 Jahren

Also, im Prinzip hattest du recht nur leider werden die Bilder immer noch arg verzerrt. Die Bilder müssen nicht quadratisch sein. Die Angaben 90x90 sind kein Zwang. Das einzige ist, das sie diese Abmasse nicht überschreiten dürfen. Im Prinzip wäre ein 73x58 auch ok.

Reden führt zu unklaren, undeutlichen Dingen. 'George W. Bush'

49.485 Beiträge seit 2005
vor 19 Jahren

Hallo Massaka,

Die Bilder müssen nicht quadratisch sein. Die Angaben 90x90 sind kein Zwang. Das einzige ist, das sie diese Abmasse nicht überschreiten dürfen. Im Prinzip wäre ein 73x58 auch ok.

das ist doch genau, was mein Code macht (zumindest machen soll). Wenn ein Originalbild z.B. die Maße 1720x1980 hat, dann geht das Programm in den else-Teil und berechnet:


iWidth = 90 * 1720 / 1980;  // ergibt 78
iHeight = 90;

also bekommt der Thumbnail die Maße 78x90, d.h. eine Reduzierung der Größe unter Beibehaltung des Seitenverhältnisses (abgesehen von minimalen Rundungsfehlern).

Oder meinst du noch eine andere Art der Verzerrung?

herbivore