• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

《zw版·delphi与halcon系列原创教程》hello,zw

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

《zw版·delphi与halcon系列原创教程》hello,zw

按惯例,第一个程序是‘hello’
毕竟,Halcon是专业的图像库,所以我们就不用纯文本版的,来一个专业版、Halcon图像版的hello程序。

首先,记得在代码文件头部的模块引用"uses",当中,加入:HALCONXLib_TLB 模块名

另外,在exe程序输出目录下,建立一个tmp子目录,这个目录是zw系列教程的统一输出目录。


下面我们输入以下代码,建立v1版的hello子程序:hello_zw01

 

 1 procedure hello_zw01();
 2 var
 3 ximg:THImageX;
 4 begin
 5 ximg := THImageX.Create(nil);
 6 ximg.ReadImage('tmp\hello_zw.png');
 7 
 8 ximg.writeImage('png', 0, 'tmp\zw01.png');
 9 ximg.writeImage('png',0, 'tmp\zw02');
10 
11 FreeAndNil(ximg);
12 end;

 

源码说明:

 1 ,子程序名称:hello_zw01

2-3,定义变量 ximg,类型是:THImageX;
5 ,创建ximg变量, THImageX.Create(nil);
6,读入图像文件, ximg.ReadImage('tmp\hello_zw.png');

8, 保存图像文件,方法1,ximg.writeImage('png', 0, 'tmp\zw01.png');
9 ,保存图像文件,方法2,ximg.writeImage('png',0, 'tmp\zw02');

11 ,释放ximg变量内存空间

【注意】

源码第6行,读入图像文件, ximg.ReadImage('tmp\hello_zw.png');

delphi版,与Halcon内置脚本、c、c#等版本语句有所不同:read_image(imgNam,ImageFileName) 

Halcon内置脚本、c、c#版,‘图像读入’语句,带有下划线;

另外,函数参数变量有两个,第一个imgNam,是图像文件载入后的内部变量名;第2个变量,ImageFileName,才是文件名

 

源码第8行,第9行,都是‘图像保存’语句:WriteImage

根据接口文件:HALCONXLib_TLB.pas源码,定义如下:

procedure WriteImage(const Format: WideString; FillColor: OleVariant; FileName: OleVariant); safecall;

变量说明: 

Format,输出文件格式

FillColor,填充颜色,一般为0

FileName,输出文件名

因为,Halcon在‘图像保存’语句:WriteImage当中,定义了图像格式,所以保存图像文件时,文件名可以省略后缀名称。

源码第9行:

ximg.writeImage('png',0, 'tmp\zw02');

 

 ok,现在运行v1版,奇怪,居然出错,

 

运行记得下载,并使用本文附带的配套图片文件,复制到tmp子目录下。

附件文件 https://files.cnblogs.com/files/ziwang/hello_zw_pic.zip

因为我们 的图像文件:tmp\hello_zw.png,是32位的,带alpha通道,与Halcon内部的有所不同。

这点,在Halcon手册里面有特别说明,尤其是在使用c、c#、delphi进行控件模式开发时。

你可以用photoshop,或者xnview等软件,取消图像的alpha通道,按24位保存,就可以了。

现在我们修改源码第9行,改为

ximg.ReadImage('tmp\hello_zw24.png');

图像文件:hello_zw24.png,是24位格式的,再次运行

 ok,顺利执行,用xnview等看图软件,浏览tmp目录,会发现除:tmp\hello_zw.png,tmp\hello_zw24.png,两个原文件外

多了两个新的图像文件:tmp\zw01.png、tmp\zw02.png

 

【《zw版·delphi与halcon系列原创教程》,网址,cnblogs.com/ziwang/】


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
【转】DELPHI开始支持LINUXDOCKER发布时间:2022-07-18
下一篇:
SynEdit(DelphiXE7)的安装和基本使用发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap