位图组件(TBitMap)TBitMap组件不存在组件板,它封装了Windows的HBITMAP句柄和HPALETTE句柄,用于操纵位图和调色板。
TBitMap对象支持从文件、剪贴板、流中存取位图。
1.TBitMap组件的典型用法
TBitMap组件在应用之前,首先要对此类型定义一个变量,然后就可以对组件进行操作了。以下代码就是一个TBitMap组件建立、应用、释放的全过程,功能是读取一个位图文件,然后将图绘制到Form1窗体上。
var
BMP:TBitMap;
begin
BMP:=TBitMap.Create;
BMP.LoadFromFile(’C:/Windows/Soap Bubbles.bmp’);
Form1.Canvas.Draw(50,50,BMP);
BMP.Free;
end;
2.TBitMap组件的重要属性
Canvas-------------位图从这个画布上输出
Empty--------------此属性用于判断位图是否为空
Handle-------------此属性返回位图的句柄
HandleType---------位图如果是设备无关的,此属性返回bmDIB,如果位图是依赖于设备的,此属性返回bmDDB
Height-------------此属性用于设置位图的高度
Width--------------此属性用于设置位图的宽度
Monochrome---------位图是单色还是彩色
PixelFormat--------此属性用于设置位图的内存格式和颜色深度
TransparentColor---此属性用于设置或返回把位图显示成透明的颜色
Transparent--------此属性决定是否把
TransparentColor---属性设置的颜色透明显示
(1)Empty属性
此属性用于判断位图是否为空。
Empty属性是一个布尔型,如果位图为空则返回True值,否则返回False值。
(2)Height属性和Width属性
这两个属性分别用于设置位图的高度和宽度。这两个属性必须在TBitMap组件调入图片后进行设置才能起到限定大小的作用。
(3)Monochrome属性
此属性决定位图是单色还是彩色。
TBitMap组件调入图片后,将Monochrome属性设置为True后,只要图像中的颜色不是白色的地方都将变成黑色,如果再将Monochrome属性设置为False,图像也不能还原成以前的彩色图像了。
(4)PixelFormat属性
此属性用于设置位图的内存格式和颜色深度。设定了如下9个用户可选值。
. pfDevice:与设备有关。
. pf1bit:1bit颜色。
. pf4bit:4bit颜色。
. pf8bit:8bit颜色。
. pf15bit:15bit颜色。
. pf16bit:16bit颜色。
. pf24bit:24bit颜色。
. pf32bit:32bit颜色。
. pfCustom:定制颜色。
(5)TransparentColor属性
此属性用于设置图像可以透明的颜色。例如要将图像中的黑色部分以透明方式显示,那么TransparentColor属性就可以赋值为clBlack,并将Transparent属性设置为True。
3.TBitMap组件的重要方法
Asign--------------------此方法将其他格式的图像转换为位图格式
Create-------------------此方法将建立一个新的TBitMap对象
Free---------------------此方法释放TBitMap组件
FreeImage----------------此方法能够减少位图占用的内存
LoadFromClipFormat-------此方法用于从剪贴板中获取一个位图
Mask---------------------此方法可以把位图变成单色的
SaveToClipboardFormat----此方法用于把一个位图保存到剪贴板
(1)Asign方法
此方法用于转换图像格式的。例如将TImage组件调入一个BMP格式的的图像,可以利用Assign方法将TImage组件的图像传递给TBitMap变量,整个过程如下:
var
BMP:TBitMap;
begin
BMP:=TBitMap.Create;
BMP.Assign(Image1.Picture.Bitmap);//对BMP进行操作
BMP.Free;
(2)Create方法
此方法是用来创建一个新的TBitMap对象的。其方法是首先声明一个TBitMap变量,然后利用Create方法建立,实例参见Asign方法中代码的前4行。
(3)Free方法
此方法用来释放TBitMap组件。程序运行时建立TBitMap组件后会占用一定的内存,如果在使用完TBitMap组件后不利用Free方法释放,这个TBitMap组件会常驻内存,直到程序运行结束,所以提倡在用完此组件后用Free方法释放它占用的内存。实例及格式参见Asign方法中代码的后数第2行。
(4)FreeImage方法
此方法能够减少位图占用的内存。TBitMap组件在调入图像后,可以利用此方法减少内存的占用,以后还可以继续使用TBitMap组件内的图像。
(5)LoadFromFile方法
此方法可以在运行时动态地调入扩展名应为.bmp的图像文件。其语法格式为:
BitMap.LoadFromFile(’FileName’);
(6)Mask方法
此方法可以把位图变成单色的。
Mask方法中包含一个TColor类型的参数TransparentColor,此参数是用来指定可以透明显示的颜色。除TransparentColor参数指定的颜色,其余的都将变成黑色。
(7)SaveToFile方法
此方法可以将TBitMap组件变量中的图像内容保存为BMP格式,其语法格式为:
BitMap.SaveToFile(’FileName’);