方法 |
描述 |
public: |
|
TBitmap |
__fastcall virtual TBitmap(void);
构造函数 |
~TBitmap |
__fastcall virtual ~TBitmap(void);
析构函数 |
Assign |
virtual void __fastcall Assign(System::Classes::TPersistent* Source);
把 Source 的显示内容复制到当前的位图,Source 可以是 TBitmap, TGIFImage, TIcon, TJPEGImage, TPngImage 等从 TGraphic 继承的类。 |
SetSize |
virtual void __fastcall SetSize(int AWidth, int AHeight);
修改位图的大小为:宽度 = AWidth,高度 = AHeight,单位为像素 (pixels) |
LoadFromFile |
virtual void __fastcall LoadFromFile(const System::UnicodeString Filename);
从文件加载位图 (*.bmp) |
SaveToFile |
virtual void __fastcall SaveToFile(const System::UnicodeString Filename);
保存位图到文件 (*.bmp) |
LoadFromStream |
virtual void __fastcall LoadFromStream(System::Classes::TStream* Stream);
从流加载位图 |
SaveToStream |
virtual void __fastcall SaveToStream(System::Classes::TStream* Stream);
把位图保存到流 |
LoadFromClipboardFormat |
virtual void __fastcall LoadFromClipboardFormat(System::Word AFormat, NativeUInt AData, HPALETTE APalette);
从剪贴板加载位图,AFormat 为剪贴板数据格式,例如 CF_BITMAP,AData 为图像数据,APalette 为调色板句柄。
【例2:从剪贴板加载位图】 |
SaveToClipboardFormat |
virtual void __fastcall SaveToClipboardFormat(System::Word &Format, NativeUInt &Data, HPALETTE &APalette);
把当前的位图转为剪贴板格式的数据,可以把这些数据放入剪贴板。
【例3:把位图放在剪贴板里面】 |
LoadFromResourceName |
void __fastcall LoadFromResourceName(NativeUInt Instance, const System::UnicodeString ResName);
通过名称从资源里面加载位图。Instance 为 exe 或 dll 文件的实例句柄,ResName 为位图资源的名称。 |
LoadFromResourceID |
void __fastcall LoadFromResourceID(NativeUInt Instance, int ResID);
通过 ID 从资源里面加载位图。Instance 为 exe 或 dll 文件的实例句柄,ResID 为位图资源的 ID. |
HandleAllocated |
bool __fastcall HandleAllocated(void);
当前 Handle 属性是否为有效的位图句柄。由于读取 Handle 属性时,如果没有创建句柄会自动创建出来一个,所以判断 Handle 是否有效需要用 HandleAllocated 方法。 |
Dormant |
void __fastcall Dormant(void);
释放位图的 GDI 资源。为了释放位图句柄,把当前的位图数据转为 DIB 格式的内存位图。
和 DDB 相比较,DIB 位图占用更少的 GDI 资源,但是会占用更多的内存。
【例4:加载位图并且释放原始数据资源的例子】 |
FreeImage |
void __fastcall FreeImage(void);
释放加载位图的原始数据占用的内存。虽然位图的原始数据丢失了,但是这个位图仍然可以正常显示。
【例4:加载位图并且释放原始数据资源的例子】 |
Mask |
void __fastcall Mask(System::Uitypes::TColor TransparentColor);
制作蒙板。把当前的位图转为黑白的蒙板,参数 TransparentColor 指定的颜色转为白色 (功能为剪裁),其他颜色转为黑色 (功能为保留)。
如果图片显示的时候使用了蒙板,图片对应蒙板的白色部分被剪裁掉,图片对应蒙板的黑色部分留下来了。
【例1: 使用蒙板的例子】 |
ReleaseHandle |
HBITMAP __fastcall ReleaseHandle(void);
返回当前位图的句柄,并且放弃使用这个句柄。返回值可以用来提供给其他希望使用和管理这个句柄的程序。 |
ReleaseMaskHandle |
HBITMAP __fastcall ReleaseMaskHandle(void);
返回当前蒙板的句柄,并且放弃使用这个句柄。返回值可以用来提供给其他希望使用和管理这个句柄的程序。 |
ReleasePalette |
HPALETTE __fastcall ReleasePalette(void);
返回当前调色板的句柄,并且放弃使用这个句柄。返回值可以用来提供给其他希望使用和管理这个句柄的程序。 |
TGraphic:: |
从 TGraphic 继承过来的 |
Equals |
virtual bool __fastcall Equals(System::TObject *Obj);
比较当前位图是否和 Obj 的位图相同。 |
operator
_di_IStreamPersist() |
operator System::Classes::_di_IStreamPersist()
{
System::Classes::_di_IStreamPersist intf;
this->GetInterface(intf);
return intf;
}
类型转换操作符,转为 _di_IStreamPersist 类型。 |
protected: |
|
GetSupportsPartialTransparency |
virtual bool __fastcall GetSupportsPartialTransparency(void);
返回是否支持半透明或 Alpha 通道。 |
Changed |
virtual void __fastcall Changed(System::TObject* Sender);
当图像数据被修改的时候,会自动调用 Changed 方法。
Changed 方法会把 Modified 属性置为 true,并且触发 OnChange 事件。 |
Draw |
virtual void __fastcall Draw(TCanvas* ACanvas, const System::Types::TRect &Rect);
把当前图像数据显示到画布 ACanvas 的 Rect 位置。 |
DrawTransparent |
virtual void __fastcall DrawTransparent(TCanvas* ACanvas, const System::Types::TRect &Rect, System::Byte Opacity);
把当前图像数据显示到画布 ACanvas 的 Rect 位置,和画布 Rect 位置原来的显示内容混合在一起,Opacity 为混合的比例,用来实现图像的透明效果,即 Opacity 为图像不透明的程度。 |
GetEmpty |
virtual bool __fastcall GetEmpty(void);
返回图像数据是否为空。 |
GetHeight |
virtual int __fastcall GetHeight(void);
返回图像的高度,单位:像素 (pixels)。 |
GetPalette |
virtual HPALETTE __fastcall GetPalette(void);
返回调色板句柄。 |
GetWidth |
virtual int __fastcall GetWidth(void);
返回图像的宽度,单位:像素 (pixels)。 |
HandleNeeded |
void __fastcall HandleNeeded(void);
如果 GDI 位图不存在,创建一个 GDI 位图。 |
MaskHandleNeeded |
void __fastcall MaskHandleNeeded(void);
如果蒙板 GDI 位图不存在,创建一个蒙板 GDI 位图 |
PaletteNeeded |
void __fastcall PaletteNeeded(void);
如果调色板不存在,会创建一个调色板。
如果 IgnorePalette 属性为 true 不会创建调色板,如果无法创建调色板,IgnorePalette 会置为 true。 |
ReadData |
virtual void __fastcall ReadData(System::Classes::TStream* Stream);
从 Stream 里面读取图像数据。 |
SetHeight |
virtual void __fastcall SetHeight(int Value) = 0 ;
把图像高度修改为 Value,单位:像素 (pixels) |
SetPalette |
virtual void __fastcall SetPalette(HPALETTE Value); |
SetWidth |
virtual void __fastcall SetWidth(int Value) = 0 ;
把图像宽度修改为 Value,单位:像素 (pixels) |
WriteData |
virtual void __fastcall WriteData(System::Classes::TStream* Stream);
把图像数据写到 Stream 里面 |
TGraphic:: |
从 TGraphic 继承过来的 |
DefineProperties |
virtual void __fastcall DefineProperties(System::Classes::TFiler* Filer);
重载 TPersistent 的 DefineProperties,用于 ReadData 和 WriteData 方法读写流图像数据。 |
Equals |
HIDESBASE virtual bool __fastcall Equals(TGraphic* Graphic)/* overload */;
比较当前图像是否和 Obj 的图像数据相同。 |
GetTransparent |
virtual bool __fastcall GetTransparent(void);
返回图像是否存在透明部分。 |
Progress |
DYNAMIC void __fastcall Progress(System::TObject* Sender, TProgressStage Stage, System::Byte PercentDone, bool RedrawNow, const System::Types::TRect &R, const System::UnicodeString Msg);
当图像改变时 (加载、存储、转换的过程中),会调用这个方法来触发 OnProgress 事件。 |
SetPalette |
virtual void __fastcall SetPalette(HPALETTE Value);
调色板改为使用 Value 句柄的调色板。 |
SetTransparent |
virtual void __fastcall SetTransparent(bool Value);
设为是否需要把图像显示为透明。 |