莒韵京风 發表於 2020-12-18 13:59:00

Delphi TBitMap[1] 位图 介绍

<p><span style="font-size: 16px"><strong>Delphi TBitMap 位图 介绍</strong></span></p>
<p><span style="font-size: 16px"> 位图TBitMap,封装了Windows的 HBITMAP 句柄 和 HPALETTE 句柄,用于操纵位图和调色板。 TBitMap对象支持从文件、剪贴板、流中存取位图。</span></p>
<p><span style="font-size: 16px">它可以自动管理调色板,还可以使用画布修改图像。创建TBitmap副本的速度非常快,因为句柄是复制的,而不是图像。如果图像被修改,并且句柄由多个TBitmap对象共享,则在执行修改(即写时复制)之前复制图像。</span></p>
<div class="cnblogs_Highlighter">
<pre class="brush:delphi;gutter:true;">TBitmap = class(TGraphic)</pre>
</div>
<p><span style="font-size: 16px"><strong>1、常用属性 </strong></span></p>
<ul>
<li><span style="font-size: 16px">Canvas&nbsp; //从画布上输出,允许在位图上绘制。</span></li>
<li><span style="font-size: 16px">Empty&nbsp; //判断是否为空 </span></li>
<li><span style="font-size: 16px">Handle&nbsp; //句柄。TBitmap封装的HBITMAP。应避免直接抓取句柄,因为如果多个TBitmap共享句柄,则会导致HBITMAP被复制。</span></li>
<li><span style="font-size: 16px">HandleType //如果与设备无关,返回bmDIB,如果依赖于设备,返回bmDDB </span></li>
<li><span style="font-size: 16px">Height&nbsp; //高度 </span></li>
<li><span style="font-size: 16px">Width&nbsp; //宽度 </span></li>
<li><span style="font-size: 16px">Monochrome&nbsp; //单色还是彩色&nbsp; &nbsp;//将Monochrome属性设置为True后,只要图像中的颜色不是白色的地方都将变成黑色&nbsp; //如果位图是单色位图,则为True</span></li>
<li><span style="font-size: 16px">PixelFormat&nbsp; //设置内存格式和颜色深度,可选值:</span></li>
<ul>
<li><span style="font-size: 16px">pfDevice:与设备有关。&nbsp;</span></li>
<li><span style="font-size: 16px">pf1bit:1bit颜色。&nbsp;</span></li>
<li><span style="font-size: 16px">pf4bit:4bit颜色。&nbsp;</span></li>
<li><span style="font-size: 16px">pf8bit:8bit颜色。&nbsp;</span></li>
<li><span style="font-size: 16px">pf15bit:15bit颜色。&nbsp;</span></li>
<li><span style="font-size: 16px">pf16bit:16bit颜色。&nbsp;</span></li>
<li><span style="font-size: 16px">pf24bit:24bit颜色。&nbsp;</span></li>
<li><span style="font-size: 16px">pf32bit:32bit颜色。&nbsp;</span></li>
<li><span style="font-size: 16px">pfCustom:定制颜色。 </span></li>
</ul>
<li><span style="font-size: 16px">TransparentColor-&nbsp; //设置或返回把位图显示成透明的颜色,例如:将图像中的黑色部分以透明方式显示,属性可以赋值为clBlack,并将Transparent属性设置为True。</span></li>
<li><span style="font-size: 16px">Palette&nbsp; &nbsp;//调色板。由TBitmap实现的HPALETTE。应避免直接抓住该句柄,因为如果多个TBitmap共享该句柄,则会导致HPALETTE被复制。</span></li>
</ul>
<p><span style="font-size: 16px"><strong>2、常用方法 </strong></span></p>
<ul>
<li><span style="font-size: 16px">Asign&nbsp; //将其他格式的图像转换为位图格式 </span></li>
<li><span style="font-size: 16px">Create&nbsp; //建立一个新的TBitMap对象 </span></li>
<li><span style="font-size: 16px">Free&nbsp; //释放</span></li>
<li><span style="font-size: 16px">FreeImage&nbsp; //能够减少位图占用的内存, 操作后还可以继续使用TBitMap组件内的图像。</span></li>
<li><span style="font-size: 16px">LoadFromFile&nbsp; &nbsp;//动态地调入扩展名应为.bmp的图像文件&nbsp; &nbsp;//BitMap.LoadFromFile('FileName');</span></li>
<li><span style="font-size: 16px">LoadFromClipFormat&nbsp; //用于从剪贴板中获取一个位图</span></li>
<li><span style="font-size: 16px">Mask-&nbsp; //把位图变成单色&nbsp; &nbsp;//此参数用来指定可以透明显示的颜色。除TransparentColor参数指定的颜色,其余的都将变成黑色。</span></li>
<li><span style="font-size: 16px">SaveToClipboardFormat-&nbsp; //保存到剪贴板</span></li>
<li><span style="font-size: 16px">SaveToFile&nbsp; //将TBitMap组件变量中的图像内容保存为BMP格式&nbsp; &nbsp;//BitMap.SaveToFile('FileName');</span></li>
</ul>
<p><span style="font-size: 16px"><strong>3、Delphi示例:</strong></span></p>
<div class="cnblogs_Highlighter">
<pre class="brush:delphi;gutter:true;"><span style="font-size: 16px">var
BMP:TBitMap;
begin
BMP:=TBitMap.Create;
BMP.LoadFromFile('C:\test.bmp');
Form1.Canvas.Draw(50,50,BMP);
BMP.Free;
end;
</span></pre>
</div>
<p><span style="font-size: 16px">将TImage组件调入一个BMP格式的的图像:</span></p>
<div class="cnblogs_Highlighter">
<pre class="brush:delphi;gutter:true;"><span style="font-size: 16px">var
BMP:TBitMap;
begin
BMP:=TBitMap.Create;
BMP.Assign(Image1.Picture.Bitmap);//
BMP.Free;
end;
</span></pre>
</div>
<p><span style="font-size: 16px">  </span></p>
<p><span style="font-size: 16px"> </span></p>
<p>&nbsp;</p>
<p><span style="color: rgba(136, 136, 136, 1)">创建时间:2020.12.18  更新时间:2022.05.04</span></p>
<p>&nbsp;</p>

</div>
<div id="MySignature" role="contentinfo">
    博客园 滔Roy https://www.cnblogs.com/guorongtao 希望内容对你有所帮助,谢谢!<br><br>
来源:https://www.cnblogs.com/guorongtao/p/14154581.html
頁: [1]
查看完整版本: Delphi TBitMap[1] 位图 介绍