using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using HalconDotNet;
using System.Threading;
namespace Demo
{
public partial class Form1 : Form
{
private HTuple WindowID;
private HObject image;
private HObject[] ImageArry = new HObject[7]; //存放影像的陣列
//執行緒物件
private Thread ThreadObject; //正常測驗執行緒
//控制執行緒的狀態
private bool Thread_Stop = false; //正常測驗執行緒停止標志
public Form1()
{
InitializeComponent();
image = new HObject();
CreateWindow();
//Loadimage();
LoadBatchImage();
ThreadObject = new Thread(new ThreadStart(playthread));
}
//執行緒函式
public void playthread()
{
int i = 0;
Thread_Stop = false;
HTuple width = null;
HTuple height = null;
while (!Thread_Stop)
{
HOperatorSet.DispObj(ImageArry[i], WindowID);
HOperatorSet.GetImageSize(ImageArry[i], out width, out height);
HOperatorSet.SetPart(WindowID, 0, 0, height, width);
Thread.Sleep(100);
i++;
if (i >= 7)
{
i = 0;
}
}
}
//批量加載影像
public void LoadBatchImage()
{
for (int i = 0; i < 7; i++)
{
HOperatorSet.ReadImage(out ImageArry[i], i.ToString() +".png");
}
}
public void CreateWindow()
{
HTuple FatherWidnow = this.pictureBox.Handle;
HOperatorSet.SetWindowAttr("background_color", "green");
HOperatorSet.OpenWindow(0, 0, this.pictureBox.Width, this.pictureBox.Height, FatherWidnow, "visible", "", out WindowID);
}
public void Loadimage()
{
HOperatorSet.ReadImage(out image, "1.png");
HTuple width = null;
HTuple height = null;
HOperatorSet.GetImageSize(image, out width, out height);
HOperatorSet.SetColor(WindowID, "yellow");
HOperatorSet.SetPart(WindowID, 0, 0, height, width);
HOperatorSet.DispObj(image, WindowID);
}
private void Begin_Click(object sender, EventArgs e)
{
Loadimage();
}
private void Running_Click(object sender, EventArgs e)
{
if (ThreadObject.ThreadState == System.Threading.ThreadState.Unstarted)
{
ThreadObject.Start();
}
if (ThreadObject.ThreadState == System.Threading.ThreadState.Stopped || ThreadObject.ThreadState == System.Threading.ThreadState.Aborted)
{
ThreadObject = new Thread(new ThreadStart(playthread));
ThreadObject.Start();
}
}
private void Stopping_Click(object sender, EventArgs e)
{
Thread_Stop = true;
}
private void DrawCircle_Click(object sender, EventArgs e)
{
HObject ho_Image, ho_Circle;
// Local control variables
HTuple hv_Row = null, hv_Column = null, hv_Radius = null;
// Initialize local and output iconic variables
HOperatorSet.GenEmptyObj(out ho_Image);
HOperatorSet.GenEmptyObj(out ho_Circle);
HOperatorSet.SetColor(WindowID, "yellow");
HOperatorSet.SetDraw(WindowID, "margin");
HOperatorSet.DrawCircle(WindowID, out hv_Row, out hv_Column, out hv_Radius);
ho_Circle.Dispose();
HOperatorSet.GenCircle(out ho_Circle, hv_Row, hv_Column, hv_Radius);
HOperatorSet.DispObj(ho_Circle, WindowID);
ho_Image.Dispose();
ho_Circle.Dispose();
}
private void Exit_Click(object sender, EventArgs e)
{
Thread_Stop = true;
this.Close();
}
}
}
uj5u.com熱心網友回復:
so......?uj5u.com熱心網友回復:
注釋太少,差評。轉載請註明出處,本文鏈接:https://www.uj5u.com/net/93456.html
標籤:C#
上一篇:C#socket 資料接收
