Delphi TBitMap[1] 位图 介绍

Delphi TBitMap[1] 位图 介绍

位图TBitMap,封装了Windows的 HBITMAP 句柄 和 HPALETTE 句柄,用于操纵位图和调色板。 TBitMap对象支持从文件、剪贴板、流中存取位图。

它可以自动管理调色板,还可以使用画布修改图像。创建TBitmap副本的速度非常快,因为句柄是复制的,而不是图像。如果图像被修改,并且句柄由多个TBitmap对象共享,则在执行修改(即写时复制)之前复制图像。

1
TBitmap = class(TGraphic)

1、常用属性

  • Canvas  //从画布上输出,允许在位图上绘制。
  • Empty  //判断是否为空
  • Handle  //句柄。TBitmap封装的HBITMAP。应避免直接抓取句柄,因为如果多个TBitmap共享句柄,则会导致HBITMAP被复制。
  • HandleType //如果与设备无关,返回bmDIB,如果依赖于设备,返回bmDDB
  • Height  //高度
  • Width  //宽度
  • Monochrome  //单色还是彩色   //将Monochrome属性设置为True后,只要图像中的颜色不是白色的地方都将变成黑色  //如果位图是单色位图,则为True
  • PixelFormat  //设置内存格式和颜色深度,可选值:
    • pfDevice:与设备有关。 
    • pf1bit:1bit颜色。 
    • pf4bit:4bit颜色。 
    • pf8bit:8bit颜色。 
    • pf15bit:15bit颜色。 
    • pf16bit:16bit颜色。 
    • pf24bit:24bit颜色。 
    • pf32bit:32bit颜色。 
    • pfCustom:定制颜色。
  • TransparentColor-  //设置或返回把位图显示成透明的颜色,例如:将图像中的黑色部分以透明方式显示,属性可以赋值为clBlack,并将Transparent属性设置为True。
  • Palette   //调色板。由TBitmap实现的HPALETTE。应避免直接抓住该句柄,因为如果多个TBitmap共享该句柄,则会导致HPALETTE被复制。

2、常用方法

  • Asign  //将其他格式的图像转换为位图格式
  • Create  //建立一个新的TBitMap对象
  • Free  //释放
  • FreeImage  //能够减少位图占用的内存, 操作后还可以继续使用TBitMap组件内的图像。
  • LoadFromFile   //动态地调入扩展名应为.bmp的图像文件   //BitMap.LoadFromFile('FileName');
  • LoadFromClipFormat  //用于从剪贴板中获取一个位图
  • Mask-  //把位图变成单色   //此参数用来指定可以透明显示的颜色。除TransparentColor参数指定的颜色,其余的都将变成黑色。
  • SaveToClipboardFormat-  //保存到剪贴板
  • SaveToFile  //将TBitMap组件变量中的图像内容保存为BMP格式   //BitMap.SaveToFile('FileName');

3、Delphi示例:

1
2
3
4
5
6
7
8
var
  BMP:TBitMap;
begin
  BMP:=TBitMap.Create;
  BMP.LoadFromFile('C:\test.bmp');
  Form1.Canvas.Draw(50,50,BMP);
  BMP.Free;
end;

将TImage组件调入一个BMP格式的的图像:

1
2
3
4
5
6
7
var
  BMP:TBitMap;
begin
  BMP:=TBitMap.Create;
  BMP.Assign(Image1.Picture.Bitmap);  //
  BMP.Free;
end;

  

 

 

创建时间:2020.12.18  更新时间:2022.05.04

 

posted on   滔Roy  阅读(1857)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
历史上的今天:
2019-12-18 Delphi InputBox、InputQuery函数 - 提示输入信息框

导航

点击右上角即可分享
微信分享提示