private void LoadImage() { AvlNet.TestImageId imageType; int imageSize; if (radioPlane.Checked) { imageType = AvlNet.TestImageId.Plane; } else { imageType = AvlNet.TestImageId.Peppers; } if (radioSize128.Checked) { imageSize = 128; } else if (radioSize256.Checked) { imageSize = 256; } else { imageSize = 512; } using (AvlNet.Image imageColor = new AvlNet.Image(), imageScaled = new AvlNet.Image()) { //mr:: AvlNet.TestImageId imageType; // imageType = AvlNet.TestImageId.Plane; //public static void TestImage //( // AvlNet.TestImageId inImageId, // NullableRef<AvlNet.Image> outRgbImage, // NullableRef<AvlNet.Image> outMonoImage //) AvlNet.AVL.TestImage(imageType, imageColor, null); //mr:: 感觉这是在改变Imaged的大小, 而不是图像的显示大小.因为每次都重新load图像文件 //public static void ResizeImage //( // AvlNet.Image inImage, // int? inNewWidth, // int? inNewHeight, // AvlNet.ResizeMethod inResizeMethod, // AvlNet.Image outImage //) AvlNet.AVL.ResizeImage(imageColor, imageSize, imageSize, AvlNet.ResizeMethod.Area, imageScaled); //mr:: HMI VideoBox控件; 有SetImage()设置控件图像 zoomingVideoBox1.SetImage(imageScaled); } }
/// <summary> /// Handles click on "NextImage" button. /// </summary> private void nextImageBtn_Click(object sender, EventArgs e) { try { //mr:: 1. var task = new Task(() => { using (var currImage = new AvlNet.Image()) { measurement.GetNextMeasuredImage(currImage); Invoke(new Action(() => { if (pictureBox1.Image != null) { pictureBox1.Image.Dispose(); } pictureBox1.Image = currImage.CreateBitmap(); var distance = measurement.LastMeasuredDistance; distLabel.Text = string.IsNullOrEmpty(distance) ? "unknown" : distance; })); } //distLabel.Text = "unknown"; }); task.Start(); } catch (Exception ex) { MessageBox.Show(ex.Message); Close(); return; } }