Einzelnen Beitrag anzeigen

cylor

Registriert seit: 9. Okt 2008
7 Beiträge
 
#11

Re: ActiveX.Image -> Buffer --> TBitmap

  Alt 10. Okt 2008, 08:15
Guten Morgen! Nach einer kleinen Korrektur funktioniert es... fast. Vielen Dank!

Delphi-Quellcode:
var
  bmp: TBitmap;
  pBuffer: Pointer;

const
  ueye_ImgWidth = 1024;
  ueye_ImgHeight = 768;
  ueye_BufferSize = ueye_ImgWidth * ueye_ImgHeight * 1;

procedure TF_Cam.Timer1Timer(Sender: TObject);
begin
   GetMem(pBuffer, ueye_BufferSize);
   try
      uEyeCam1.CopyImage(Cardinal(pBuffer), ueye_BufferSize);
      bmp := TBitmap.Create;
      try
         bmp.Width := ueye_ImgWidth;
         bmp.Height := ueye_ImgHeight;
         bmp.PixelFormat := pf8Bit;

         Move(pBuffer^, bmp.Scanline[bmp.Height-1]^, ueye_BufferSize);

         BitBlt(F_Cam.Canvas.Handle, 0, 0, ueye_ImgWidth, ueye_ImgHeight, bmp.Canvas.Handle, 0, 0, SRCCOPY);
      finally
         bmp.Free;
      end;
   finally
      FreeMem(pBuffer);
   end;
end;
Nur leider stimmt die Palette nicht. Aus dem Grayscale wird ein lustige Ansammlung von Farben. ^^
  Mit Zitat antworten Zitat