Delphi TBitMap 位图组件

来源:互联网 发布:java积分商城系统源码 编辑:程序博客网 时间:2024/06/05 14:39
位图组件(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'); 
0 0
原创粉丝点击