Autor Beitrag
blackbirdXXX

ontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1077
Erhaltene Danke: 1

Ubuntu Dapper

BeitragVerfasst: Fr 26.12.03 00:05 
Ich habe folgendes Problem:
Ich habe eine 64x64 Bitmap mit 16Farben. Nun möchte ich das so auslesen das ich sage

Punkt[1,1] der Bitmap hat den Farbwert 1 und wird in Array Feld[1,1] gespeichert.

Geht das? Wenn möglich nicht clblack oder sowas sondern nur ein Integer. 0 als Schwarz, 1 als blau...

_________________
Klein, schwarz und ärgert Techniker? Jumper!
blackbirdXXX Threadstarter

ontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1077
Erhaltene Danke: 1

Ubuntu Dapper

BeitragVerfasst: Fr 26.12.03 10:18 
Habs jetzt selber gelöst:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
field: array [1..64,1..64] of Integer;

procedure TForm1.Button2Click(Sender: TObject);
var a, b: Integer;
    src: TCanvas;
    myclr: TColor;
begin
 for a := 0 to 63 do
  for b := 0 to 63 do
   begin
    myclr := mapper.Canvas.Pixels[a, b];
    if myclr = clblue then field[a, b] := 1;
    if myclr = clgreen then field[a, b] := 2;
    if myclr = clred then field[a, b] := 3;
   end;
 image1.Left := 0;
 image1.Top := 0;
 image1.Width := 2048;
 image1.height := 2048;
 for a := 0 to 63 do
  for b := 0 to 63 do
   begin
    if field[a, b] = 1 then src := f1.Canvas;
    if field[a, b] = 2 then src := f2.Canvas;
    if field[a, b] = 3 then src := f3.Canvas;
    image1.Canvas.CopyRect(rect(a*32,b*32,a*32+32,b*32+32), src, rect(0,0,32,32));
   end
end;

_________________
Klein, schwarz und ärgert Techniker? Jumper!