![]() |
Bitmap einlesen und weiterverwenden
Guten Tag,
Also, 1. Ich will auf Buttonklick ein Bitmap einlesen. --> sollte kein Problem sein 2. Ich will, und jetzt wirds kriminell, in einer Schleife das ganze Bild absuchen nach einem Farbwert, meinentwegen Rot. 3. Er soll dann einen Zähler erhöhen wenn er die Farbe ROT erkannt hat. Halt wie wenn ich mit einem Farbwähler in Paint eine Farbe auswähle. Er soll sozuagen oben links anfangen und dann nach rechts sich abtasten, hinten angekommen soll er in eine neue Zeile wechseln. 4. Ihr fragt euch jetzt vielleicht, für was ich sowas brauche. Nun ja ich will mich mal an einen eigenen Crypto algo ranmachen. Und dafür will ich Bilder verwenden. Meine Frage ist nun. Geht sowas überhaupt ?? Also ich wüsste nicht wie es funktionieren sollte. Tja nun seid ihr dran. Danke schon mal für eure Hilfsbereitschaft. Mit freundlichen Gruß LB |
Re: Bitmap einlesen und weiterverwenden
Hallo Lillebrohr,
das Zauberwort heißt "TImage", schau Dir mal die Komponente genau an und Du wirst sehen bzw. erkennnen welche Möglickeiten darin verborgen sind. bye |
Re: Bitmap einlesen und weiterverwenden
Guten Tag duffy,
danke für deine Antwort. Tja ich habe mal an die Canvas Funktion gedacht aber naja ich dachte halt irgend jemand von den Members hier hat sich schonmal damit befasst. Naja werd ich mal gucken werden müssen tuhen. Mit freundlichen Gruß LB |
Re: Bitmap einlesen und weiterverwenden
Hallo Lillebrohr,
schau sie dir wirklich an. Sie beinhaltet auch Komponenten vom TBitmap & Co. und mit denen kannst du Deine Manipulationen durchführen. bye |
Re: Bitmap einlesen und weiterverwenden
1. Ich will auf Buttonklick ein Bitmap einlesen.
--> sollte kein Problem sein TBitmap.LoadFromFile 2. Ich will, und jetzt wirds kriminell, in einer Schleife das ganze Bild absuchen nach einem Farbwert, meinentwegen Rot.
Delphi-Quellcode:
Wenn du es schnelle :angle: haben willst beschäftige dich mit ScanLine
iCount := 0;
for y := 0 to bmp.Height - 1 do for x := 0 to bmp.Width - 1 do if bmp.Canvas.Pixels[x, y] = rgb(??, ??, ??) then inc(iCount); |
Re: Bitmap einlesen und weiterverwenden
Hi,
Ich vermute du willst Steganographie machen. Dazu brauchst du nicht nach roten Pixeln zu suchen. Entscheidend ist das die zusätzliche zu versteckende Information dem Bild angepasst wird und möglichst keine nachweisebaren Spuren hinterlassen werden. Am effektivsten arbeitet man mit 24Bit Bitmaps, also 3 Bytes pro Pixel, somit 1 Byte für Blau,Rot und Grün. Beim Einbetten/Auslesen der Infos wird nun über Bitmap.ScanLines[] gearbeitet. Dies gibt uns einen Zeiger auf ein array[0..Bitmap.Width -1] of packed record R,G,B: Byte end; zurück. Dieser Weg ist der effizienteste unter Delphi. Von jedem Farbwert wird NUR das unterste Bit mit unseren Daten belegt. Dadurch nutzen wir die Schwankungen im Farbwert aus die eh durch Rauschen entstanden sind. Gruß Hagen |
Re: Bitmap einlesen und weiterverwenden
Falls negaH recht hat
![]() |
Re: Bitmap einlesen und weiterverwenden
@Merlin, der Link ist ein guter Einstieg, man sollte aber die dort dargstellte Methode wirklich nur als Demo betrachten. Sie wäre unsicher.
Da ich aber nicht weiß was Lillebrohr will lohnt sich noch keine Erklärung. Gruß Hagen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:12 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