您现在的位置:首页 >> 图形媒体 >> 图形媒体 >> 内容

Delphi图像分割

时间:2011/9/3 15:02:08 点击:

  核心提示://预定义var //在此之前可用const定义常量 //定义图像绘制序列 Pic:array[1..16] of byte=(2,2,2,3,3,3,4,4,5,4,5,4,9,10,10,11);...

//预定义
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;

Tags:图像 分割 
作者:网络 来源:转载
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
本类推荐
  • 没有
本类固顶
  • 没有
  • 盒子文章(www.2ccc.com) © 2022 版权所有 All Rights Reserved.
  • 沪ICP备05001939号