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

椰子天涯 2011-07-11 11:34:49
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;
...全文
675 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿发伯 2011-07-11
  • 打赏
  • 举报
回复
不明白你要把2段无内容的图像数据倒来倒去做什么:ABitmap.ScanLine[Height - 1]地址是只有底色的图像数据;myBuffer更是一堆随机数值,不知你拷贝的目的是什么?
椰子天涯 2011-07-11
  • 打赏
  • 举报
回复
谢谢 谢谢你
阿发伯 2011-07-11
  • 打赏
  • 举报
回复
sizeof(PByte)计算的是指针变量的内存大小,在32位编译器中恒等于4
Width * 3计算的是Width所需字节数,但不等于图像每行的字节数,图像每行的字节数必须是4的整倍数。
阿发伯 2011-07-11
  • 打赏
  • 举报
回复
sizeof(PByte)计算的是指针变量的内存大小,在32位编译器中恒等于4
Width * Height * 3计算的是Width所需字节数,但不等于图像每行的字节数,图像每行的字节数必须是4的整倍数。
椰子天涯 2011-07-11
  • 打赏
  • 举报
回复
To maozefa:

非常感谢你

还有一点不明白 我是这样写的 为什么错误了? 运行提示错误 access violation at address..........
GetMem(myBuffer, sizeof(pbyte));
CopyMemory(ABitmap.ScanLine[Height - 1], myBuffer, Width * Height * 3);
阿发伯 2011-07-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yyangjingjing 的回复:]
引用 1 楼 maozefa 的回复:

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


我的myBuffer是有值的 是$40013600 就是想把myBuffer的内存拷贝给bitmap 不知道该怎么实现?
[/Quote]
$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);
椰子天涯 2011-07-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 maozefa 的回复:]

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

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

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧