Autor Beitrag
Freiberger
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 130

WIN XP
Delphi 7
BeitragVerfasst: Do 14.02.08 22:32 
hier mal ein Beispiel aus dem Delphi-Easy-Helper...
Vielleicht hilf das ja weiter.

Bei der Invention eines Bitmaps werden alle Farbwerte umgekehrt, so dass es aussieht, als hätte man ein Negativ vor sich.

Zuerst ist diese Typenvereinbarung erforderlich:

type
TFarbArray = array[0..0] of TRGBTriple;
pFarbArray = ^TFarbArray;
Dann kommt die Inventieren-Prozedur:

procedure Inventieren(const Bitmap: TBitmap);
var
i,j:Integer; Reihe: ^TRGBTriple;
begin
for i:= 0 to Bitmap.Height-1 do
begin
Reihe:= Bitmap.Scanline[i];
for j:= 0 to Bitmap.Width-1 do
begin
Reihe^.rgbtred := not Reihe^.rgbtred;
Reihe^.rgbtBlue := not Reihe^.rgbtblue;
Reihe^.rgbtgreen := not Reihe^.rgbtgreen;
inc(Reihe);
end;
end;
bitmap.Assign(Bitmap);
end;
Die erste Schleife geht jedes Pixel in der Höhe durch, die Zweite jedes in der Breite. Dann wird jeder Fabwert mit dem not-Operator umgekehrt.

Über die Scanline-Funktion bietet das Internet ausreichend erklärenden Stoff.

Der Aufruf dieser Prozedur ist selten einfach:

procedure TForm1.Button1Click(Sender: TObject);
begin
Inventieren(Image1.Picture.Bitmap);
end;
Herr Bananerama Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 130



BeitragVerfasst: Do 14.02.08 23:16 
Ich probiers mal aus
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Fr 15.02.08 07:43 
(a) Wenn Du meine Tipp mit dem Bitmap beherzigt hast, sollte das Problem aus der Wlet sein, es sei denn, Deine Koodinaten X,Y stimmen nicht und liegen au0erhalb des Bitmap-Bereichs, dann kommt Color=-1
(b) Dein Auto ist ein Viereck(Polygon) in der Ebene, Dein Hindernis ist ein Viereck(Polygon) in der Ebene, also einfach testen, ob ein Eckpunkt des Hinderniss im Viereck(Polygon) des Autos liegt
(c) lasse das Image ganz weg, zeichne alles auf ein Bitmap und gibt diese direkt per BitBlt auf dem Canvas der Form bzw in einer PaintBox aus!

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
Herr Bananerama Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 130



BeitragVerfasst: Fr 15.02.08 16:39 
user profile iconKroko hat folgendes geschrieben:
(a) Wenn Du meine Tipp mit dem Bitmap beherzigt hast, sollte das Problem aus der Wlet sein, es sei denn, Deine Koodinaten X,Y stimmen nicht und liegen au0erhalb des Bitmap-Bereichs, dann kommt Color=-1
(b) Dein Auto ist ein Viereck(Polygon) in der Ebene, Dein Hindernis ist ein Viereck(Polygon) in der Ebene, also einfach testen, ob ein Eckpunkt des Hinderniss im Viereck(Polygon) des Autos liegt
(c) lasse das Image ganz weg, zeichne alles auf ein Bitmap und gibt diese direkt per BitBlt auf dem Canvas der Form bzw in einer PaintBox aus!


Es Funktioniert jetzt alles wunderbar und ich brauch jetzt auch nurnoch 2 variablen und 2 For-Schleifen. Der Tipp mit Scanline war echt Hilfreich. Danke für eure Hilfe!!!!