Laden...

[GDI+] Image-Objekt: Hintergrundfarbe ermitteln

Erstellt von der-schlingel vor 14 Jahren Letzter Beitrag vor 14 Jahren 2.104 Views
der-schlingel Themenstarter:in
799 Beiträge seit 2007
vor 14 Jahren
[GDI+] Image-Objekt: Hintergrundfarbe ermitteln

Hallo,

Wie kann ich möglichst einfach die Hintergrundfarbe eines Bildes ermitteln? Welche Strategie ist hier angebracht?

Ich habe mir eine ziemlich primitive Strategie zu recht gelegt. Ich ermittle einfach für jeden Pixel die Farbe und nehme an, dass die Farbe die am öftesten pro Pixel in dem ganzen Bild vorkommt (in dem Fall handelt es sich um ein Sprite-Sheet). Hier hole ich mir zu aller erst ein Bitmap Objekt aus dem Image-Objekt und dann hole ich mir mittels GetPixel(x, y) die Farbe.

Wie kann ich das besser machen?

As a man thinketh in his heart, so he is.

  • Jun Fan
    Es gibt nichts Gutes, außer man tut es.
  • Erich Kästner
    Krawutzi-Kaputzi
  • Kasperl
49.485 Beiträge seit 2005
vor 14 Jahren

Hallo der-schlingel,

GetPixel ist ziemlich langsam. Für Alternativen schau mal in GetPixel und SetPixel um Längen geschlagen. 800 mal schneller.

Die Frage ist halt, was du als Hintergrundfarbe definierst. Stell dir einen ein oranges Quadrat auf einer blauen Fläche vor. Ist dann das Blau der Hintergrund oder handelt es sich nicht doch um einen blauen Rahmen, durch den in der Mitte der orange Hintergrund sichtbar wird?

Solange du nicht definieren kannst, was du als Hintergrund ansiehst, kannst du es auch nicht programmieren. 😃

herbivore

32 Beiträge seit 2010
vor 14 Jahren

@der-schlingel:

Du könntest deine Methode ja so erweitern, dass die Randpixel eines Bildes höher gewichtet werden?

Dennoch hat Herbivore recht... Das ist wieder mal ein schwer zu lösendes Problem. Deine Methode hängt primär davon ab, mit welchen Bildern du arbeitest.

#define struct union[

der-schlingel Themenstarter:in
799 Beiträge seit 2007
vor 14 Jahren

Hm, Schade. Dachte vielleicht gibt es da ein Patentrezept das mir nur nicht bekannt ist. Wäre ja nicht das erste Mal gewesen 😁

Werde wohl mittels RoBitmap meine Idee etwas verfeinern und nur den Seitenrand des Bildes prüfen. Da es ein Sprite-Sheet ist, sollte das hinhauen.

Danke für die Tipps.

As a man thinketh in his heart, so he is.

  • Jun Fan
    Es gibt nichts Gutes, außer man tut es.
  • Erich Kästner
    Krawutzi-Kaputzi
  • Kasperl