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;
------解决方案--------------------
$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);
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;
------解决方案--------------------
$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);