51 lines
1.2 KiB
C#
51 lines
1.2 KiB
C#
using System;
|
|
using System.Threading;
|
|
using System.Drawing; // 或者使用其他图像处理库
|
|
|
|
public class CameraThread
|
|
{
|
|
private readonly int _cameraId;
|
|
private readonly Action<Bitmap> _onImageCaptured;
|
|
private Thread _thread;
|
|
private bool _running;
|
|
|
|
public CameraThread(int cameraId, Action<Bitmap> onImageCaptured)
|
|
{
|
|
_cameraId = cameraId;
|
|
_onImageCaptured = onImageCaptured;
|
|
_running = false;
|
|
}
|
|
|
|
public void Start()
|
|
{
|
|
_running = true;
|
|
_thread = new Thread(Run);
|
|
_thread.Start();
|
|
}
|
|
|
|
public void Stop()
|
|
{
|
|
_running = false;
|
|
_thread?.Join();
|
|
}
|
|
|
|
private void Run()
|
|
{
|
|
while (_running)
|
|
{
|
|
// 模拟图像捕获
|
|
Bitmap image = CaptureImageFromCamera(_cameraId);
|
|
_onImageCaptured?.Invoke(image);
|
|
|
|
// 休眠一段时间,模拟捕获间隔
|
|
Thread.Sleep(1000);
|
|
}
|
|
}
|
|
|
|
private Bitmap CaptureImageFromCamera(int cameraId)
|
|
{
|
|
// 这里添加实际的图像捕获代码
|
|
// 例如,从相机 SDK 捕获图像并返回
|
|
return new Bitmap(640, 480); // 模拟图像
|
|
}
|
|
} |