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
博客园 滔Roy https://www.cnblogs.com/guorongtao 希望内容对你有所帮助,谢谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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函数 - 提示输入信息框