首先,write_message这个算子我在12版本中没有发现,用了18.11 Steady中可以,这个算子的意思是把一个消息写入文件中,定义如下:- write_message( : : MessageHandle, FileName, GenParamName, GenParamValue : )
复制代码 楼主的代码如下:
- write_message (WindowHandle, 10, 10, 'Image '+Index+': Pattern to be tested was found ambiguously', false)
复制代码 算子参数个数都对应不上,第一个是消息句柄,变成了窗口句柄!第二个是文件路径名称,变成了10,10这样的参数!第三、四个是参数名称和参数值,设置了一个字符串和false值,参数个数不匹配为最明显错误,后面的错误就是句柄错误或者参数设置错误了(虽然还没有轮到提示)。
再来看看set_font错误
- set_font (WindowHandle, '-*-' + FontNameUnix + '-*-' + FontSizes[Size] + '-*-*-*-*-*-iso8859-1'),报Wrong front name
复制代码 楼主没有说明halcon版本,从代码初步推测write_message低版本没有,那么我当是18.11好了,那么看看定义是什么?
- set_font( : : WindowHandle, Font : )
复制代码 第一个是窗口句柄,不是消息句柄,第二个是输入控制类型参数字体,既然要设置我们可以要先查有没有这些类型,需要用的算子为:
- WindowHandle:=0
- dev_get_window (WindowHandle)
- query_font (WindowHandle, Font)
复制代码 查到了我电脑上有280个字体:
那么set_font中Font格式应该是怎样,我们查到set_font中的一句话:
- The syntax for the specification of Font is the following:
- FONTNAME[-STYLE]-FONT_SIZE.
复制代码 英语不好的可以翻译,大概意思就是字体指定的符号可以是下面这样指定:字体名称[-样式-]-字体大小!其他我们都知道,样式是怎样的呢?
- The optional STYLE may be one of the following (other values are possible as well): 样式选项可以是下面任意一个值
- Normal,Bold,BoldItalic, or Italic. 普通、粗体、粗斜体或斜体
复制代码
“'default-Normal-12'”是我通过get_font查询到我当前系统用的字体和大小,是默认的普通12号字体!我找个熟悉的字体,发现73号是黑体,试试看:
先读取一幅图像,至于为什么,不多说了,看代码:
- read_image (Image, 'printer_chip/printer_chip_01')
- set_font (WindowHandle, Font[73]+'-Bold-50')
- disp_message (WindowHandle, '20号加粗黑体字体设置', 'window', 12, 12, 'green', 'true')
复制代码 效果如下:
再看看楼主设置的字体,楼主这是早期版本获取的格式吧?有没有查验过是不是这样的格式?你的代码已经提示你错误的字体了,你可以尝试读取出字体再进行设置!
希望能够帮到你,就写了很多详细的解释,希望楼主能够看懂,解决了给我一个赞,打字教学不容易!
|