delphi 图像分割


本文整理自网络,侵删。

 delphi 图像分割

//预定义
var //在此之前可用const定义常量
//定义图像绘制序列
Pic:array[1..16] of byte=(2,2,2,3,3,3,4,4,5,4,5,4,9,10,10,11);
//定义
基层图像与临时图像
FormBmp,TempBmp:TBitmap;
//定义点
P,PX,PY:integer;
//定义区域
R1,R2:TRect;

//初始化
var
width,height:integer; //设置图像中纵横图素的数量
begin
width:=需要的横向图素数量;
Height:=需要的纵向图素数量;
Formbmp:=TBitmap.Create;
formbmp.LoadFromFile(GetCurrentDir+'\文件名');//载入图像
Tempbmp:=Tbitmap.Create;
tempbmp.Width:=width*8; //设置临时图像的宽度与高度
tempbmp.Height:=height*8;
end;

//图像操作
var
x,y:integer;
begin
tempbmp.Canvas.CopyMode:=cmSrcCopy; //设置复制模式
for y:=0 to 原图板纵向图素数量-1 do
begin
for x:=0 to 原图板横向图素数量-1 do
begin
P:=pic[y*横向图素数量+x]; //从图像序列中取点
if p<>0 then
begin
px:=(p mod 面板图素横向图素个数)*单个图素宽度;
py:=(p div 面板图素横向图素个数)*单个图素高度;
r1:=rect(px,py,px+单个图素宽度,py+单个图素高度);
r2:=rect(x*单个图素宽度,y*单个图素高度,x*单个图素宽度+单个图素宽度,y*单个图素高度+单个图素高度);
tempbmp.Canvas.CopyRect(r2,formbmp.Canvas,r1);
//从原图板FormBmp中取出r1区域的图素并将其复制到r2区域
end;
end;
form1.Canvas.CopyMode:=cmSrcCopy;
form1.Canvas.Draw(0,0,tempbmp); //将临时图像显示到屏幕
end;
end;

相关阅读 >>

Delphi下程序内存泄露报告

Delphi 在 webservice 中采用 tsoapattachment 传输文件

Delphi case选择语句练习代码简化

Delphi uhttp_flood

Delphi 窗体内控件实现滚动字母

Delphi firedac 连接access mdb数据库的方法

Delphi idhttp解决获取utf-8网页中文乱码问题

Delphi实现二分查找

Delphi自动适应屏幕分辨率的属性

Delphi rest api post sample

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...