Delphi TBitMap[1] 位图 介绍

Delphi TBitMap[1] 位图 介绍

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

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

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示例:

var 
  BMP:TBitMap; 
begin 
  BMP:=TBitMap.Create; 
  BMP.LoadFromFile('C:\test.bmp'); 
  Form1.Canvas.Draw(50,50,BMP); 
  BMP.Free; 
end;

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

var 
  BMP:TBitMap; 
begin 
  BMP:=TBitMap.Create; 
  BMP.Assign(Image1.Picture.Bitmap);  //
  BMP.Free;
end;

  

 

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