![]() |
aus TImage Pixelwerte auslesen
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. |
Re: aus TImage Pixelwerte auslesen
Zitat:
Mfg |
Re: aus TImage Pixelwerte auslesen
wobei scanline die schnellere methode ist wenn man viele pixel auslesen will.
lg elundril |
Re: aus TImage Pixelwerte auslesen
Zitat:
|
Re: aus TImage Pixelwerte auslesen
ja aber bei TImage gibt ne property TBitmap mit der man auf das bild zugreifen kann soweit ich weiß.
lg elundril |
Re: aus TImage Pixelwerte auslesen
Zitat:
Somit: nur wenn es ein Bitmap ist. |
Re: aus TImage Pixelwerte auslesen
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:
Grüße
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; |
Re: aus TImage Pixelwerte auslesen
Ja, prima,
der vorgeschlagene Code funktioniert wunderbar. Danke E. B. PS.: die von Fussball-Robby in der Signatur angehangene Antimonie ist genial. |
Re: aus TImage Pixelwerte auslesen
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? |
Re: aus TImage Pixelwerte auslesen
Hallo,
möchtest du manuell eine Funktion programmieren um die Bildgröße zu ändern? Das kannst du beispielsweise mit ![]() Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:38 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 by Thomas Breitkreuz