![]() |
Größe eines Bildes auf TImage
Hallo Leute,
ich habe gelernt, eine neue Frage in einem neuen Thread zu stellen. Nachdem die Ursache des Fehlers mit der Skalierung geklärt ist, stellt sich mir eine andere Frage. Wie kann ich die Flächengröße des Bildes auf dem TImage ermitteln. Width und Height liefern ja nur die Fläche von TImage. Center = true, streched = false und proportonal = true. Kann ich das abrufen oder muss ich das selbst berechnen? Gruß Willie. |
AW: Größe eines Bildes auf TImage
Versuch mal
Delphi-Quellcode:
Image1.Picturs.Width/Height
|
AW: Größe eines Bildes auf TImage
Ja ja, die Picturs und die Imadges... :thumb:
|
AW: Größe eines Bildes auf TImage
aber eigentlich Image1.Pictures.Graphic.Width/Height :stupid:
|
AW: Größe eines Bildes auf TImage
Zitat:
|
AW: Größe eines Bildes auf TImage
Ja, das klappt mit Image.Picture.Width/Height.
Mein Programm kan mit bmp, jpg, png, gif, tif und emf umgehen. Ich habe es mit allen außer emf ausprobiert, es klappt.? Danke Freunde. Trotzdem habe ich noch eine Frage zur Geometrie, die nicht mit programmieren zu tun hat: Eine Seite von Image entspricht Image.Width oder Height. Die andere Seite ergebt sich aus dem Verhältnis von Breite zu Höhe. Wie kann ich ermitteln, ob der Rand rechts oder links oder oben und unten ist? Die Bildfläche soll mittig und so groß, wie möglich sein. Das leistet ja Image.center. Gruß Willie. |
AW: Größe eines Bildes auf TImage
Zitat:
|
AW: Größe eines Bildes auf TImage
Delphi-Quellcode:
if Image.Picture.Width < Image.Width then
{ Rand ist links und rechts } else if Image.Picture.Height < Image.Height then { Rand is oben und unten } else { Kein Rand } |
AW: Größe eines Bildes auf TImage
Zitat:
Hallo Uwe, ich verstehe deinen Source. Ich meinte nur, wie kann ich das Bild platzieren, wenn mir Picture.Height/Width nicht zur Verfügung nicht zur Verfügung stehen würden. Dann ist es doch Geometrie: Kongruenz. Willie. |
AW: Größe eines Bildes auf TImage
Zitat:
Delphi-Quellcode:
var
pict: TPicture; w, h: Integer; begin pict := TPicture.Create; try pict.Assign(DasImage); w := pict.Width; h := pict.Height; finally pict.Free; end; // mach was mit w und h end; |
AW: Größe eines Bildes auf TImage
Wenn die Grafik skalliert dargestellt wird ohne das Seitenverhältnis zu verändern, musst du das Seitenverhältnis der Grafik mit dem Seitenverhältnis des Image vergleichen.
Delphi-Quellcode:
d1 := Image.Picture.Width/Image.Picture.Height;
d2 := Image.Width/Image.Heigh; if d1 < d2 then { Rand ist links und rechts } else if d1 > d2 then { Rand is oben und unten } else { Kein Rand } |
AW: Größe eines Bildes auf TImage
Ja, wenn man nur wissen will wo ein Rand ist, dann besser mit den Seitenverhältnisen und nicht den Seitenlängen rechnen/vergleichen.
Wenn das Bild auch noch gestrecht wird, dann kannst du sowieso nur mit den Radio / dem Seitenverhältnis rechnen, da die Längen ja im Verhältnis stehen, aber nicht direkt vergleichbar sind, wenn das Picture vergrößert/verkleinert dargestellt wird. Zitat:
|
AW: Größe eines Bildes auf TImage
Zitat:
Zitat:
Für Preview anzeigen nutz ich generell stretch, auch wenn es das Bild verzerrt. |
AW: Größe eines Bildes auf TImage
Hallo, der Hintergrund meiner Frage war, dass ich GDI+ benutze und da gibt es kein Center und Streched. Ich weiß jetzt, wie es geht. Man muss die Ratio des Originalbildes berechnen und berücksichtigen, falls das Bild im Hochformat ist. Zur Vorschau, benutze ich die eingebetteten Thumnails, falls vorhanden. Das geht sehr schnell.
Gruß Willie. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz