当前位置:网站首页>Halcon C # sets the form font and adaptively displays pictures
Halcon C # sets the form font and adaptively displays pictures
2022-06-26 14:59:00 【Tingyi - flying bird】
Set form font
// Use
Form1.set_display_font(this.hWindowControl1, 24, "mono", "true", "false");
public static void set_display_font(HalconDotNet.HWindowControl hWindowCtl, HTuple hv_Size, HTuple hv_Font,
HTuple hv_Bold, HTuple hv_Slant)
{
HTuple hv_OS = null, hv_Fonts = new HTuple();
HTuple hv_Style = null, hv_Exception = new HTuple(), hv_AvailableFonts = null;
HTuple hv_Fdx = null, hv_Indices = new HTuple();
HTuple hv_Font_COPY_INP_TMP = hv_Font.Clone();
HTuple hv_Size_COPY_INP_TMP = hv_Size.Clone();
HOperatorSet.GetSystem("operating_system", out hv_OS);
// dev_get_preferences(...); only in hdevelop
// dev_set_preferences(...); only in hdevelop
if ((int)((new HTuple(hv_Size_COPY_INP_TMP.TupleEqual(new HTuple()))).TupleOr(
new HTuple(hv_Size_COPY_INP_TMP.TupleEqual(-1)))) != 0)
{
hv_Size_COPY_INP_TMP = 16;
}
if ((int)(new HTuple(((hv_OS.TupleSubstr(0, 2))).TupleEqual("Win"))) != 0)
{
//Restore previous behaviour
hv_Size_COPY_INP_TMP = ((1.13677 * hv_Size_COPY_INP_TMP)).TupleInt();
}
else
{
hv_Size_COPY_INP_TMP = hv_Size_COPY_INP_TMP.TupleInt();
}
if ((int)(new HTuple(hv_Font_COPY_INP_TMP.TupleEqual("Courier"))) != 0)
{
hv_Fonts = new HTuple();
hv_Fonts[0] = "Courier";
hv_Fonts[1] = "Courier 10 Pitch";
hv_Fonts[2] = "Courier New";
hv_Fonts[3] = "CourierNew";
hv_Fonts[4] = "Liberation Mono";
}
else if ((int)(new HTuple(hv_Font_COPY_INP_TMP.TupleEqual("mono"))) != 0)
{
hv_Fonts = new HTuple();
hv_Fonts[0] = "Consolas";
hv_Fonts[1] = "Menlo";
hv_Fonts[2] = "Courier";
hv_Fonts[3] = "Courier 10 Pitch";
hv_Fonts[4] = "FreeMono";
hv_Fonts[5] = "Liberation Mono";
}
else if ((int)(new HTuple(hv_Font_COPY_INP_TMP.TupleEqual("sans"))) != 0)
{
hv_Fonts = new HTuple();
hv_Fonts[0] = "Luxi Sans";
hv_Fonts[1] = "DejaVu Sans";
hv_Fonts[2] = "FreeSans";
hv_Fonts[3] = "Arial";
hv_Fonts[4] = "Liberation Sans";
}
else if ((int)(new HTuple(hv_Font_COPY_INP_TMP.TupleEqual("serif"))) != 0)
{
hv_Fonts = new HTuple();
hv_Fonts[0] = "Times New Roman";
hv_Fonts[1] = "Luxi Serif";
hv_Fonts[2] = "DejaVu Serif";
hv_Fonts[3] = "FreeSerif";
hv_Fonts[4] = "Utopia";
hv_Fonts[5] = "Liberation Serif";
}
else
{
hv_Fonts = hv_Font_COPY_INP_TMP.Clone();
}
hv_Style = "";
if ((int)(new HTuple(hv_Bold.TupleEqual("true"))) != 0)
{
hv_Style = hv_Style + "Bold";
}
else if ((int)(new HTuple(hv_Bold.TupleNotEqual("false"))) != 0)
{
hv_Exception = "Wrong value of control parameter Bold";
throw new HalconException(hv_Exception);
}
if ((int)(new HTuple(hv_Slant.TupleEqual("true"))) != 0)
{
hv_Style = hv_Style + "Italic";
}
else if ((int)(new HTuple(hv_Slant.TupleNotEqual("false"))) != 0)
{
hv_Exception = "Wrong value of control parameter Slant";
throw new HalconException(hv_Exception);
}
if ((int)(new HTuple(hv_Style.TupleEqual(""))) != 0)
{
hv_Style = "Normal";
}
hv_AvailableFonts = hWindowCtl.HalconWindow.QueryFont();
//HOperatorSet.QueryFont(hv_WindowHandle, out hv_AvailableFonts);
hv_Font_COPY_INP_TMP = "";
for (hv_Fdx = 0; (int)hv_Fdx <= (int)((new HTuple(hv_Fonts.TupleLength())) - 1); hv_Fdx = (int)hv_Fdx + 1)
{
hv_Indices = hv_AvailableFonts.TupleFind(hv_Fonts.TupleSelect(hv_Fdx));
if ((int)(new HTuple((new HTuple(hv_Indices.TupleLength())).TupleGreater(0))) != 0)
{
if ((int)(new HTuple(((hv_Indices.TupleSelect(0))).TupleGreaterEqual(0))) != 0)
{
hv_Font_COPY_INP_TMP = hv_Fonts.TupleSelect(hv_Fdx);
break;
}
}
}
if ((int)(new HTuple(hv_Font_COPY_INP_TMP.TupleEqual(""))) != 0)
{
throw new HalconException("Wrong value of control parameter Font");
}
hv_Font_COPY_INP_TMP = (((hv_Font_COPY_INP_TMP + "-") + hv_Style) + "-") + hv_Size_COPY_INP_TMP;
hWindowCtl.HalconWindow.SetFont(hv_Font_COPY_INP_TMP);
return;
}
Adaptive display picture
// Use display
Form1.DisplayImage(this.hWindowControl1, imgSub);
// display picture
private static void DisplayImage(HalconDotNet.HWindowControl hWindowCtl, HImage imgShow)
{
// Set the display size
imgShow.GetImageSize(out int imgWidth, out int imgHeight);
double ratioWidth = (1.0) * imgWidth / hWindowCtl.Width;
double ratioHeight = (1.0) * imgHeight / hWindowCtl.Height;
HTuple row1, column1, row2, column2;
if (ratioWidth >= ratioHeight)
{
row1 = -(1.0) * ((hWindowCtl.Height * ratioWidth) - imgHeight) / 2;
column1 = 0;
row2 = row1 + hWindowCtl.Height * ratioWidth;
column2 = column1 + hWindowCtl.Width * ratioWidth;
}
else
{
row1 = 0;
column1 = -(1.0) * ((hWindowCtl.Width * ratioHeight) - imgWidth) / 2;
row2 = row1 + hWindowCtl.Height * ratioHeight;
column2 = column1 + hWindowCtl.Width * ratioHeight;
}
// display picture
hWindowCtl.HalconWindow.SetPart(row1, column1, row2, column2);
hWindowCtl.HalconWindow.DispObj(imgShow);
}
Be careful dll Need to be placed in a folder
halcon.dll
hcanvas.dll
halcondotnet.dll
边栏推荐
- 重磅白皮书发布,华为持续引领未来智慧园区建设新模式
- R语言epiDisplay包的dotplot函数通过点图的形式可视化不同区间数据点的频率、使用by参数指定分组参数可视化不同分组的点图分布、使用cex.X.axis参数指定X轴轴刻度数值标签字体的大小
- 国信证券的排名如何?办理股票开户安全吗?
- R语言dplyr包summarise_at函数计算dataframe数据中多个数据列(通过向量指定)的均值和中位数、指定na.rm参数配置删除缺失值
- Deploy the flask environment using the pagoda panel
- Complimentary Book Cognitive Control: how does our brain accomplish tasks?
- 【使用yarn运行报错】The engine “node“ is incompatible with this module.
- Where do people get their top energy?
- 券商经理给的开户链接办理股票开户安全吗?我想开个户
- Naacl2022: (code practice) good visual guidance promotes better feature extraction, multimodal named entity recognition (with source code download)
猜你喜欢

TCP拥塞控制详解 | 1. 概述

Halcon C# 设置窗体字体,自适应显示图片

Detailed explanation of C language programming problem: can any three sides form a triangle, output the area of the triangle and judge its type

Attention meets Geometry:几何引导的时空注意一致性自监督单目深度估计

Get the intersection union difference set of two dataframes

The engine "node" is inconsistent with this module

How to mount cloud disks in ECS

15 BS object Node name Node name String get nested node content
杜老师说网站更新图解

备战数学建模32-相关性分析2
随机推荐
Electron
R语言dplyr包bind_rows函数把两个dataframe数据的行纵向(竖直)合并起来、最终行数为原来两个dataframe行数的加和(Combine Data Frames)
View touch analysis
A remove the underline from the label
Complimentary Book Cognitive Control: how does our brain accomplish tasks?
K gold Chef (two conditions, two points and difference)
The engine "node" is inconsistent with this module
nvidia-smi 报错
Redis事务与watch指令
fileinput.js php,fileinput
NVIDIA SMI error
Can wptx64 be uninstalled_ Which software of win10 can be uninstalled
TCP congestion control details | 1 summary
Login authentication service
权威发布 | 延安大学2022年教师岗位招聘公告
Flex & bison start
Solution to the upper limit of TeamViewer display devices
Deploy the flask environment using the pagoda panel
Oracle11g database import and export method tutorial [easy to understand]
Use abp Zero builds a third-party login module (I): Principles