| Autor |
Beitrag |
JungerIslaender
      
Beiträge: 427
Erhaltene Danke: 5
Win XP
Delphi 7; Delphi 2005
|
Verfasst: Fr 06.03.09 20:02
Ich möchte ein bild in mein Programm laden und dann analysieren. Folgendes soll gemacht werden:
Bilder bestehen aus pixeln und das programm soll ein raster anlegen, wobei ein quadrat im raster für ein pixel steht. Und das raster dann in eine text datei umgewandelt werden(Reihe1: Blau blau gelb...). Dabei soll noch die Rastergröße veränderbar sein sodass die farbe die in einem raster überwiegt genommen wird.
Leider weiß ich nicht wie ich das angehen soll.
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 06.03.09 20:59
|
|
JungerIslaender 
      
Beiträge: 427
Erhaltene Danke: 5
Win XP
Delphi 7; Delphi 2005
|
Verfasst: Fr 06.03.09 23:04
Hab es jetzt mit image1.Canvas.Pixels[i,j] gelöst. Das liefert mir nun werte wie:$007B7D63 wie kann ich die nun vereinfachen und in ein wort umwandeln wie Hellrot hellblau usw.? oder generell gucken was für eine farbe das ist.
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 06.03.09 23:09
JungerIslaender hat folgendes geschrieben : | | Hab es jetzt mit image1.Canvas.Pixels[i,j] gelöst. |
Das ist im Gegensatz zu Scanline zwar extrem viel langsamer (Tretroller vs. Spaceshuttle so ca.  ), aber wenn das egal ist...
JungerIslaender hat folgendes geschrieben : | | Das liefert mir nun werte wie:$007B7D63 wie kann ich die nun vereinfachen und in ein wort umwandeln wie Hellrot hellblau usw.? oder generell gucken was für eine farbe das ist. |
Naja, wenn du Scanline benutzt hättest, hättest du direkt die drei Farbwerte für rot, grün und blau, hier musst du die eben noch herausholen.
Ich glaube da gibt es GetRValue, GetBValue und GetGValue, außerdem sind das ja jeweils eins der letzten 3 Bytes, du könntest es also auch mit shr und and z.B. selbst herausholen.
|
|
JungerIslaender 
      
Beiträge: 427
Erhaltene Danke: 5
Win XP
Delphi 7; Delphi 2005
|
Verfasst: Fr 06.03.09 23:28
Scanline haz mir keine korrekten werte geliefert, wenn du mir sagst wie es geht dann mach ich es auch so.
Wenn ich dann die RGB werte hätte, hab ich aber immer noch nicht was ich brauch. Hätte letztendlich gerne sowas:
Pixel1,1 rot
Pixel1,2 blau
Pixel1,3 gelb
Pixel1,4 hellrot
In rgb umwandeln wäre einfach:
Delphi-Quelltext
denn image1.Canvas.Pixels[i,j] liefert den wert color
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 06.03.09 23:40
Es gibt z.B. ColorToStr, aber das kennt nicht so viele Farben. Zudem kennt es nur die Delphikonstantennamen.
Alles weitergehende müsstest du selbst anhand einer Liste von Farben und deren Kriterien programmieren. Ich kenne jedenfalls keine eingebauten weitergehenden Möglichkeiten. 
|
|
JungerIslaender 
      
Beiträge: 427
Erhaltene Danke: 5
Win XP
Delphi 7; Delphi 2005
|
Verfasst: Fr 06.03.09 23:43
OK Vielenn Dank(das mitColor to string hab ich schon^^, deshalb die werte)
|
|
>M@steR<
      
Beiträge: 288
Erhaltene Danke: 3
|
Verfasst: Sa 07.03.09 02:24
Zuletzt bearbeitet von >M@steR< am Di 17.09.13 02:10, insgesamt 1-mal bearbeitet
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 07.03.09 08:57
Zuletzt bearbeitet von jaenicke am Sa 07.03.09 15:08, insgesamt 1-mal bearbeitet
|
|
JungerIslaender 
      
Beiträge: 427
Erhaltene Danke: 5
Win XP
Delphi 7; Delphi 2005
|
Verfasst: Sa 07.03.09 14:51
Vielleicht beantwortet das deine frage:
www.youtube.com/watch?v=y-laSYHqlQA
Edit: genauso wie du das geschrieben hast hab ich es auch gemacht, werd es jetzt nochmal testen, hoffe ich hatte irgendwo einen fehler^^.
|
|
Sinspin
      
Beiträge: 1337
Erhaltene Danke: 119
Win 10
RIO, CE, Lazarus
|
Verfasst: Sa 07.03.09 15:01
Aber dabei muss man beachten das das PixelFormat des Bitmaps 24 Bit hat. Sonst bekommt man ja nur Müll raus.
_________________ Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 07.03.09 15:09
Stimmt, ich habe das ergänzt, das hatte ich vergessen, dass das ja auch mal anders sein kann. (Ich habs eh immer in dem Format.)
|
|
JungerIslaender 
      
Beiträge: 427
Erhaltene Danke: 5
Win XP
Delphi 7; Delphi 2005
|
Verfasst: Sa 07.03.09 15:09
Sinspin hat folgendes geschrieben : | | Aber dabei muss man beachten das das PixelFormat des Bitmaps 24 Bit hat. Sonst bekommt man ja nur Müll raus. |
Das versteh ich jetzt nicht.
Außerdem hat irgendjemand ne idee wie ich ausz.B.
Rot: 132
Grün: 146
Blau: 140
so etas wie Blau, Hellblau oder so hinkrieg. Denn ich weiß nichtmal was das jetzt für ne farbe wäre
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 07.03.09 15:13
Die Umstellung des PixelFormats habe ich oben ergänzt.
Da die drei Werte relativ nahe beieinander liegen, ist es eine Farbe im Graubereich, hier mitteldunkel ca. würde ich sagen.
Du musst solche Kriterien dir überlegen für die Farben, die du in der Liste anzeigen willst. Zum Beispiel: Wenn ein Wert mehr als doppelt so hoch ist wie die beiden anderen, dann ist es die Farbe, dazu dann die Helligkeit.
Diese kannst du ja ausrechnen aus den drei Werten.
|
|
>M@steR<
      
Beiträge: 288
Erhaltene Danke: 3
|
Verfasst: Sa 07.03.09 19:31
Zuletzt bearbeitet von >M@steR< am Di 17.09.13 02:10, insgesamt 2-mal bearbeitet
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 07.03.09 19:41
|
|
>M@steR<
      
Beiträge: 288
Erhaltene Danke: 3
|
Verfasst: Sa 07.03.09 19:58
Zuletzt bearbeitet von >M@steR< am Di 17.09.13 02:10, insgesamt 1-mal bearbeitet
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 07.03.09 20:02
Ach das, ja, da hast du Recht, aber was gibts da nicht alles verrücktes. 
|
|
JungerIslaender 
      
Beiträge: 427
Erhaltene Danke: 5
Win XP
Delphi 7; Delphi 2005
|
Verfasst: Di 10.03.09 14:55
Danke, dass mit dem einscannen werde ich auch noch testen^^
Danke!
|
|