Autor Beitrag
der organist
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 467
Erhaltene Danke: 17

WIN 7
NQC, Basic, Delphi 2010
BeitragVerfasst: Mo 29.09.08 19:41 
vllt sollte ich doch ein neues Thema für eine neue Frage eröffnen.

Wie kann ich Bilder (Bitmaps) miteinander logisch verknüpfen (in meinem Fall AND und OR)?

_________________
»Gedanken sind mächtiger als Waffen. Wir erlauben es unseren Bürgern nicht, Waffen zu führen - warum sollten wir es ihnen erlauben, selbständig zu denken?« Josef Stalin
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Mo 29.09.08 19:43 
Wie willst du mehrere BILDER verknüpfen..?!
Du kannst die Visible Werte davon verknüpfen, aber nicht die Bilder selbst..

Erklär mal, was genau du meinst.

_________________
PROGRAMMER: A device for converting coffee into software.
der organist Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 467
Erhaltene Danke: 17

WIN 7
NQC, Basic, Delphi 2010
BeitragVerfasst: Mo 29.09.08 19:45 
ok, ich habe zwei Bitmaps und ich will sie (ich denke die einzelnen Pixel) verknüpfen. Da sie gleich groß sind, kann ich jedes Pixel (bmp 1) mit jedem Pixel (bmp 2) aufeinanderlegen.

worum es geht: kreis kopieren

_________________
»Gedanken sind mächtiger als Waffen. Wir erlauben es unseren Bürgern nicht, Waffen zu führen - warum sollten wir es ihnen erlauben, selbständig zu denken?« Josef Stalin
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Mo 29.09.08 21:41 
Hi,

Ganz naiv schonmal mit zwei Schleifen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure MixBmp(Source, Dest: TBitmap);
var
  i, j: Integer;
begin
  for i := 0 to Width(Source) - 1 do begin
    for j := 0 to Height(Source) - 1 do
      Dest.Pixels[i, j] := Dest.Pixels[i, j] AND Source.Pixels[i, j];
  end;
end;

Womit wir uns die langsamst denkbare Methode schonmal geschrieben hätten, der kann man fast beim Arbeiten zuschauen :mrgreen:

Etwas beschleunigen ließe sich das sicher noch mit Suche in der Entwickler-Ecke SCANLINE. Was mich spontan verwirrt hatte war ja, dass in dem Thread jemand meinte das ginge mit BitBlt :nixweiss:

mfG,

_________________
Centaur spears can block many spells, but no one tries to block if they see that the spell is a certain shade of green. For this purpose it is useful to know some green stunning hexes. (HPMoR)
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 30.09.08 07:52 
BitBlt hat als letzten Parameter dwRop. Den kann man sich mal genauer ansschauen.