delphi pbyte

场景:delphi 怎样将一个PByte类型 拷贝到内存,再将它们分配给bit地图 然后保存成bmp图像

delphi 怎样将一个PByte类型 拷贝到内存,再将它们分配给bitmap 然后保存成bmp图像?
delphi 怎样将一个PByte类型 拷贝到内存,再将它们分配给bitmap 然后保存成bmp图像?
const    
    Width = 752;
    Height = 480;

 var ABitmap: TBitmap;
     myBuffer: PByte;

begin
  ABitmap := TBitmap.Create;
  ABitmap.PixelFormat := pf24bit;
  ABitmap.Width := Width;
  ABitmap.Height := Height;

    GetMem(myBuffer, SizeOf(pbyte));
    CopyMemory(myBuffer,ABitmap.ScanLine[Height - 1], Width * Height * 3);//这一句出错 请问该怎样拷贝内存?

   ABitmap.SaveToFile(dlgSave1.FileName);
   ABitmap.Free;
------解决方案--------------------
引用:
引用:

不明白你要把2段无内容的图像数据倒来倒去做什么:ABitmap.ScanLine[Height - 1]地址是只有底色的图像数据;myBuffer更是一堆随机数值,不知你拷贝的目的是什么?


我的myBuffer是有值的 是$40013600 就是想把myBuffer的内存拷贝给bitmap 不知道该怎么实现?

$40013600是myBuffer的地址,而不是图像数据!
我不同你说了,我只告诉你正确的将myBuffer拷贝到ABitmap就行了:

  stride = (ABitmap.Width * 3 + 2) and not 3; // 24位图像每行数据字节
  size = stride * ABitmap.Height;             // 图像总的字节数
  GetMem(myBuffer, size);                     // myBuffer里面是些乱七八糟的随机数
  CopyMemory(ABitmap.ScanLine[Height - 1], myBuffer, size);