Einzelnen Beitrag anzeigen

Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#12

Re: Bitmap "auf die harte Tour" schreiben

  Alt 1. Mär 2006, 14:12
Ja ebend, so in der Art hätte ich dies realisiert.

Habe mal angefangen:
Delphi-Quellcode:
type
  TDigits = 0..1;

function CreateMonoBitmap(W, H: Integer): TBitmap;
begin
  Result := TBitmap.Create;
  with Result do
  begin
    Width := W;
    Height := H;
    PixelFormat := pf1Bit;
  end;
end;

var
  b: Byte;

procedure WritePixelToMonoBitmap(bmp: TBitmap; x,y: Integer; Value: TDigits);
var
  p: pByteArray;

begin
  p := pByteArray(bmp.Scanline[y]);
  // hier fehlt noch die umrechnung auf ein BIT
  p[x div 8] := Value zu BIT umrechnen;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  bitmap: TBitmap;
  x,y: byte;
begin
  // MonoBitmap erzeugen
  bitmap := CreateMonoBitmap(100,100);

  // Diagonale auf's Test Bitmap zeichnen
  for y:=0 to 99 do
  begin
    WritePixelToMonoBitmap(bitmap, x, y, 0);
    inc(x);
  end;

  // Testanzeige
  Image1.Picture.Bitmap.Assign(bitmap);

  // Bitmap freigeben
  bitmap.Free;
end;
Leider Stelle ich mich bei der Umrechnung auf das einzelne Bit nicht geschickt genug an, so daa ich noch keinen rechten Erfolg hatte. Schleifen wollte ich nicht verwenden. Das muss auch mit Bit-Verschiebung gehen.
Wenn einer eine Idee hat kann er die mir mitteilen
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat