AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Koordinate in TImage32 abh. vom Bild finden

Ein Thema von Trille · begonnen am 22. Apr 2008 · letzter Beitrag vom 22. Apr 2008
Antwort Antwort
Trille

Registriert seit: 25. Sep 2007
62 Beiträge
 
#1

Koordinate in TImage32 abh. vom Bild finden

  Alt 22. Apr 2008, 12:56
Hallo,
Ich habe ein TImage32, in dem beliebige Bilder angezeigt werden. Ich habe das Bild skaliert angezeigt (also so, dass die Seitenverhältnisse konstant bleiben zum Originalbild), das Bild selbst hat als Align := alClient, das Bitmapalign ist baCenter. Links und Rechts bleibt bei mir also noch reichlich Platz. Ich brauche jetzt einen Punkt, der 5 Pixel neben der Grafik liegt. Das Bild kann ja verschiedene Abmessungen haben. Ich habe sowas versucht:

Delphi-Quellcode: markieren
x := (Image.Width div 2) + (Image.Bitmap.Width div 2) + 5;


Das funktioniert so aber nicht. Hat jemand dazu einen Hinweis?
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Koordinate in TImage32 abh. vom Bild finden

  Alt 22. Apr 2008, 13:31
Zitat von Trille:
Das funktioniert so aber nicht.
Hurraaaaaaaaaaa! Wieder einmal geht der Preis für die präziseste Fehlerbeschreibung an einen DP-User! Herzlichen Glückwunsch, ich bitte um Ihre Dankesrede. *zumpodiumschubs*
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Trille

Registriert seit: 25. Sep 2007
62 Beiträge
 
#3

Re: Koordinate in TImage32 abh. vom Bild finden

  Alt 22. Apr 2008, 13:33
Zitat von Medium:
Zitat von Trille:
Das funktioniert so aber nicht.
Hurraaaaaaaaaaa! Wieder einmal geht der Preis für die präziseste Fehlerbeschreibung an einen DP-User! Herzlichen Glückwunsch, ich bitte um Ihre Dankesrede. *zumpodiumschubs*
Was erwartest du denn für eine Fehlerbeschreibung? Beim dem Sachverhalt, den ich beschrieben habe, ist das Label entweder an der Stelle oder eben nicht. Anahnd meiner aussage dürfte klar, sein, welcher Fall eingetreten ist.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Koordinate in TImage32 abh. vom Bild finden

  Alt 22. Apr 2008, 13:37
Aha, ein Label also. Das wäre z.B. eine wichtige Information gewesen, die du in deinem 1. Beitrag aber verheimlichst. Nimm ein TStaticText. TLabel ist nur ein GraphicControl und hat damit keinen eigenen Canvas, und zeichnet somit auf den Canvas seines Parents: Das Formular. Da TImage32 aber einen eigenen Canvas hat der über dem Formular gezeichnet wird, überdeckt dies dein Label. Die Formel selber ist völlig korrekt.

Ich hoffe du verstehst jetzt, dass es durchaus wichtig ist wenigstens ein paar Randinformationen zu liefern.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Trille

Registriert seit: 25. Sep 2007
62 Beiträge
 
#5

Re: Koordinate in TImage32 abh. vom Bild finden

  Alt 22. Apr 2008, 13:51
Zitat von Medium:
Aha, ein Label also. Das wäre z.B. eine wichtige Information gewesen, die du in deinem 1. Beitrag aber verheimlichst. Nimm ein TStaticText. TLabel ist nur ein GraphicControl und hat damit keinen eigenen Canvas, und zeichnet somit auf den Canvas seines Parents: Das Formular. Da TImage32 aber einen eigenen Canvas hat der über dem Formular gezeichnet wird, überdeckt dies dein Label. Die Formel selber ist völlig korrekt.

Ich hoffe du verstehst jetzt, dass es durchaus wichtig ist wenigstens ein paar Randinformationen zu liefern.
Ich darf an dieser Stelle leider nur ein TLabel nehmen. Im übrigen sehe ich das Label auch, aber halt immer an der falschen Position. Mal zu weit rechts, mal zu weit links (obwohl die Bilder die gleichen Höhe/Breite-Verhältnisse haben) und auch gleich groß dargestellt werden. Das liegt daran, dass Image.Bitmap.Width die Breite des Originalbildes zurückliefert, ich brauche aber die Breite des skalierten Bildes. D.h. wenn ich ein 500x500 Pixel Bild darstelle, ist das Label zu weit rechts (es wird runterskaliert)
stelle ich aber ein ein 3x3 Pixel Bild ein (wird genau so groß dargestellt wie das 500x500 Pixel Bild), dann ist das Label auf dem Bild (es wird hochskaliert) und das Label landet fast in der Mitte.

Angenommen das TImage32 ist 1000 Pixel breit und 50 Pixel hoch, dann ergibt das laut der Formel, di ich benutze folgendes:

x := (Image.Width div 2) + (Image.Bitmap.Width div 2) + 5;

500x500: x=755
3x3: x=506;

x ist übrigens label.left.
Im gegebenen Fall muss x in beiden Fällen gleich sein, da beide Bilder auf die gleiche Größe skaliert werden.

Ich hoffe, ich konnte das Problem verdeutlichen.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Koordinate in TImage32 abh. vom Bild finden

  Alt 22. Apr 2008, 14:17
Ich muss mich entschuldigen, ich hab den Teil mit der Skalierung nicht mit bedacht. Ein Blick in die GR32 Doku offenbart z.B. TImage32.GetPictureRect, was dir die Koordinaten des angezeigten Bildes zurückliefert. (Dokus sind toll )

edit: GetPictureSize wüde die skalierte Größe liefern, aber o.g. erspart dir sogar noch Rechnungen.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Trille

Registriert seit: 25. Sep 2007
62 Beiträge
 
#7

Re: Koordinate in TImage32 abh. vom Bild finden

  Alt 22. Apr 2008, 14:27
Zitat von Medium:
Ich muss mich entschuldigen, ich hab den Teil mit der Skalierung nicht mit bedacht. Ein Blick in die GR32 Doku offenbart z.B. TImage32.GetPictureRect, was dir die Koordinaten des angezeigten Bildes zurückliefert. (Dokus sind toll )

edit: GetPictureSize wüde die skalierte Größe liefern, aber o.g. erspart dir sogar noch Rechnungen.
Hehe, auch das habe ich getan. Nur gibt es bei mir die o.g. Methode nicht. GetBitmapRect() hat aber letztendlich geholfen
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Koordinate in TImage32 abh. vom Bild finden

  Alt 22. Apr 2008, 14:36
Welche Version hast du von der G32? Ich hab die Online-Doku von hier zu Rate gezogen. Wenn die Change-History in der Doku den letzten Stand dieser wiederspiegelt, ist sie aktuell (1.8.3).

Edit: Ich vermute sogar, dass beide Funktionen das selbe tun, und nur umbenannt wurde, da ja eigentlich eben nicht das Bitmap-Rect, sondern eben das skalierte Picture-Rect zurückgeliefert wird.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz