86 lines
2.3 KiB
C#
86 lines
2.3 KiB
C#
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 Flir.Atlas.Image;
|
|
|
|
namespace ThermalImageStreamerDemo
|
|
{
|
|
// Simple playback of a SEQ (radiometric data) file.
|
|
// Also see IRImageReaderDemo on how to open Thermal image files.
|
|
public partial class PlaybackForm : Form
|
|
{
|
|
private ThermalImageFile _imageFile;
|
|
private string Path { get; set; }
|
|
private bool IsDirty { get; set; }
|
|
readonly Timer _timer = new Timer();
|
|
public PlaybackForm(string path)
|
|
{
|
|
Path = path;
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void PlaybackForm_Load(object sender, EventArgs e)
|
|
{
|
|
_imageFile = new ThermalImageFile(Path);
|
|
_imageFile.Changed += _imageFile_Changed;
|
|
pictureBox1.Image = _imageFile.Image;
|
|
if (_imageFile.ThermalSequencePlayer.Count() > 1)
|
|
{
|
|
_timer.Interval = 20;
|
|
_timer.Tick += _timer_Tick;
|
|
_timer.Start();
|
|
}
|
|
}
|
|
|
|
void _timer_Tick(object sender, EventArgs e)
|
|
{
|
|
if (!IsDirty) return;
|
|
IsDirty = false;
|
|
_imageFile.EnterLock();
|
|
try
|
|
{
|
|
pictureBox1.Image = _imageFile.Image;
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
MessageBox.Show(exception.Message);
|
|
throw;
|
|
}
|
|
finally
|
|
{
|
|
_imageFile.ExitLock();
|
|
}
|
|
}
|
|
|
|
void _imageFile_Changed(object sender, ImageChangedEventArgs e)
|
|
{
|
|
IsDirty = true;
|
|
}
|
|
|
|
private void buttonPlay_Click(object sender, EventArgs e)
|
|
{
|
|
_imageFile.ThermalSequencePlayer.Play();
|
|
}
|
|
|
|
private void buttonStop_Click(object sender, EventArgs e)
|
|
{
|
|
_imageFile.ThermalSequencePlayer.Stop();
|
|
}
|
|
|
|
private void buttonPause_Click(object sender, EventArgs e)
|
|
{
|
|
_imageFile.ThermalSequencePlayer.Pause();
|
|
}
|
|
|
|
private void PlaybackForm_FormClosing(object sender, FormClosingEventArgs e)
|
|
{
|
|
_timer.Stop();
|
|
}
|
|
}
|
|
}
|