Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bild eines TImage positionieren (https://www.delphipraxis.net/180388-bild-eines-timage-positionieren.html)

Antonov 16. Mai 2014 17:46

Bild eines TImage positionieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Seit einem halben Tag quäle ich mich schon durch Delphi Hilfe und Internet und finde einfach nichts zu meiner Fragestellung:

Das Picture eines TImage zeichnet sich normalerweise so, dass es oben links anfängt. Ich möchte aber die ersten(!) 100 Pixel von Top und Left abgeschnitten und den Rest gezeichnet haben wie die Ränder des TImage es zulassen. Andersrum ist es ja einfach, indem man einfach die TImage bounds verkleinert, dass man die letzten 100 Pixel einfach abschneidet. Aber wie kriegt man es hin, dass man den sichtbaren Bereich quasi so einstellt, wie man es möchte?
Zur Veranschaulichung habe ich ein Beispiel als jpg angehängt.
Mein Vorhaben ist eine Zoomfunktion zu basteln, womit ich mit einem erzeugten TImage auf Mausclick einen Bereich des Bildes heraushebe.

Popov 16. Mai 2014 19:47

AW: Bild eines TImage positionieren
 
Also, TImage hat u. a. die Eigenschaften AutoSize, Center und Strech.

AutoSize passt die Größe der Image-Komponente dem Bild (z. B. Bitmap) an. Hier passt sich die Komponente dem Bild an.

Strech passt sich das Bild an die Image-Komponente an. Das Bild wird zur Not vergrößert oder verkleinert.

Center positioniert das Bild mittig in der Komponente.

Gehen wir man davon aus, dass du das Bild nicht verändern willst. Machst du die Komponente genauso breit wie das Bild und 200 Pixel in der Höhe kleiner wie das Bild und positionierst es mittig, werden oben und unten je 100 Pixel verdeckt. Z. B. so:

Delphi-Quellcode:
  Image1.Width := Image1.Picture.Bitmap.Width;
  Image1.Height := Image1.Picture.Bitmap.Height - 200;
  Image1.Center := True;
Ansonsten das Bild mit Canvas.CopyRect zuschneiden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:57 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