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;


来源:http://www.coder163.com/language/delphi/

相关阅读 >>

Delphi 关闭自己,重新运行

Delphi 图像分割

Delphi firemonkey在画布上绘制 imagelist图像

Delphi 之前解析串口数据

github上通过星级评估排名前10的最受欢迎的开源Delphi项目

Delphi 使用钩子函数

Delphi getcurrentdir 获取当前文件夹

Delphi 字节数转换为kb或mb字符串

Delphi xe ttask.waitforall/waitforany 一不小心会造成内存泄露

Delphi 遍历目录

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



打赏

取消

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

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

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

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

评论

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