AGB  ·  Datenschutz  ·  Impressum  







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

aus TImage Pixelwerte auslesen

Ein Thema von EccoBravo · begonnen am 31. Mär 2008 · letzter Beitrag vom 10. Apr 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von EccoBravo
EccoBravo

Registriert seit: 19. Okt 2004
Ort: Neuruppin
524 Beiträge
 
Delphi 2007 Architect
 
#1

aus TImage Pixelwerte auslesen

  Alt 31. Mär 2008, 17:05
Hallo,

kann ich aus einem TImage Pixelwerte auslesen (zB. Pixelwert für x=7 und y=9 ...)?
Wenn ich ein Bild im TImage habe, will ich die Pixelwerte entlang der 9 Pixelzeile auslesen.
Ebenfalls will ich die Stretch Funktion (Image1.stretch:=true nutzen, um große Bildmatrizen in kleine Bildmatrizen umzurechnen.
Falls es mit dem TImage nicht gehen sollte, womit kann ich dieses sonst machen?

Grüße

E. B.
Wahre Aussage :=
Katzen, die bellen sind keine Kaninchen.

Der Kreisverkehr ist eine spezielle Form der Einbahnstraße
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: aus TImage Pixelwerte auslesen

  Alt 31. Mär 2008, 17:36
Zitat von EccoBravo:
kann ich aus einem TImage Pixelwerte auslesen (zB. Pixelwert für x=7 und y=9 ...)?
Guck dir mal TCanvas.Pixels[x,y] an.

Mfg
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
elundril

Registriert seit: 11. Feb 2007
Ort: Wien
74 Beiträge
 
#3

Re: aus TImage Pixelwerte auslesen

  Alt 31. Mär 2008, 17:45
wobei scanline die schnellere methode ist wenn man viele pixel auslesen will.

lg elundril
Michael
Bombing for peace is like fu**ing for virginity.
--------------
Tausend Lemminge können sich nicht irren.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: aus TImage Pixelwerte auslesen

  Alt 31. Mär 2008, 18:40
Zitat von elundril:
wobei scanline die schnellere methode ist wenn man viele pixel auslesen will.
Welche aber nur bei einem TBitmap vorhanden ist und da nach TImage gefragt wurde, kann dies von einem TMetafile bis zu einem TPingObject alles mögliche sein...
  Mit Zitat antworten Zitat
elundril

Registriert seit: 11. Feb 2007
Ort: Wien
74 Beiträge
 
#5

Re: aus TImage Pixelwerte auslesen

  Alt 31. Mär 2008, 23:42
ja aber bei TImage gibt ne property TBitmap mit der man auf das bild zugreifen kann soweit ich weiß.

lg elundril
Michael
Bombing for peace is like fu**ing for virginity.
--------------
Tausend Lemminge können sich nicht irren.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: aus TImage Pixelwerte auslesen

  Alt 1. Apr 2008, 03:04
Zitat von elundril:
ja aber bei TImage gibt ne property TBitmap mit der man auf das bild zugreifen kann soweit ich weiß.
Nur, wenn auch eine TBitmap Instanz drinne ist...

Somit: nur wenn es ein Bitmap ist.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: aus TImage Pixelwerte auslesen

  Alt 1. Apr 2008, 07:44
Hallo,

da man hier, wie erwähnt, ohne weiteres nicht direkt mit dem TImage arbeiten kann, würde ich das Bild in ein TBitmap einlesen und damit weiterarbeiten. Das hat auch den positiven Nebeneffekt, dass es schneller gehen müsste, da der Zugriff auf die VCL relativ langsam ist, vor allem, wenn man hunderte bzw. tausende Zugriffe hat, was bei großen Bildern der Fall wäre:

Delphi-Quellcode:
var
  Bmp: TBitMap;
begin
  Bmp := TBitMap.Create;
  try
    Bmp.Assign(Image1.Picture.Graphic);

    // nun enthält das TBitmap die Grafik aus dem TImage und du
    // kannst hier mittels "Bmp.Canvas.Pixels[]" auf die einzelnen
    // Farbwerte der Pixel zugreifen
  finally
    FreeAndNil(Bmp);
  end;
end;
Grüße
  Mit Zitat antworten Zitat
Benutzerbild von EccoBravo
EccoBravo

Registriert seit: 19. Okt 2004
Ort: Neuruppin
524 Beiträge
 
Delphi 2007 Architect
 
#8

Re: aus TImage Pixelwerte auslesen

  Alt 1. Apr 2008, 10:37
Ja, prima,

der vorgeschlagene Code funktioniert wunderbar.

Danke

E. B.

PS.:
die von Fussball-Robby in der Signatur angehangene Antimonie ist genial.
Wahre Aussage :=
Katzen, die bellen sind keine Kaninchen.

Der Kreisverkehr ist eine spezielle Form der Einbahnstraße
  Mit Zitat antworten Zitat
Benutzerbild von EccoBravo
EccoBravo

Registriert seit: 19. Okt 2004
Ort: Neuruppin
524 Beiträge
 
Delphi 2007 Architect
 
#9

Re: aus TImage Pixelwerte auslesen

  Alt 1. Apr 2008, 18:06
Danke Matze,

Habe nun ein Bild im TImage dem BMP zugewiesen.
Nun will ich über TCanvas.Pixels einzelne Pixel Farbwerte auslesen.
Dabei wundere ich mich, denn die ausgelesenen Farbwerten entsprechen nicht dem angezeigten Bildinhalt.

(Bevor ich das Bild über den TCanvas.Pixels untersuchte, habe ich es mit Image1.Width und Image1.Height in der Größe verändert.)
(Warum dieser Zirkus?
Ich will ein 800x800 Pixelbild in ein 512x512 Pixelbild zur weiteren Verarbeitung umwandeln, da ich nicht unbedingt eine bikubische Bildtransformation programmieren will.)


Nun meine Frage:
Welcher Fokus.Cursor ist mit X und Y in TCanvas.Pixels[x,y] zum Farbauslesen des Bildes gemeint, der des aktuell angezeigten Bildes (512x512) oder der des Originalbildes (800x800), das ich ursprünglich in das TImage.Picture eingelesen habe?

Danke für Hilfe, Ideen und Tips

E. B.

PS.:
Und wie mache ich das, wenn ich in dem TImage (welches ich hier gerade knete) einen Bildpunkt zur Markierung/Kontrolle hinein setzten will?
Wahre Aussage :=
Katzen, die bellen sind keine Kaninchen.

Der Kreisverkehr ist eine spezielle Form der Einbahnstraße
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: aus TImage Pixelwerte auslesen

  Alt 1. Apr 2008, 18:55
Hallo,

möchtest du manuell eine Funktion programmieren um die Bildgröße zu ändern?
Das kannst du beispielsweise mit Delphi-Referenz durchsuchenBitBlt recht einfach machen.

Grüße
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:36 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