Introduced the CJMS11 camera component and its factory in TbfComponents. Added implementation for the CJMS11 camera class, along with unit tests to validate its functionality and integration. This enhances existing camera support in the system.
38 lines
973 B
C#
38 lines
973 B
C#
using System;
|
|
using TBF.Rig.Network.Camera.CJMS11.POJO;
|
|
using System.Drawing;
|
|
using System.IO;
|
|
|
|
|
|
|
|
namespace TBF.Rig.Network.Camera.CJMS11
|
|
{
|
|
public class ParsedImage
|
|
{
|
|
public ImageType Encoding { get; }
|
|
public string ImageData { get; }
|
|
|
|
public Image Image { get { return (ImageData.Length>0 ? Base64ToImage(ImageData) : null); } }
|
|
|
|
public ParsedImage(ImageType encoding, string imageData)
|
|
{
|
|
Encoding = encoding;
|
|
ImageData = imageData;
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
return $"ParsedImage{{encoding='{Encoding}', imageData='{ImageData}'}}";
|
|
}
|
|
|
|
public static Image Base64ToImage(string base64Image)
|
|
{
|
|
byte[] imageBytes = Convert.FromBase64String(base64Image);
|
|
|
|
using (var ms = new MemoryStream(imageBytes))
|
|
{
|
|
return Image.FromStream(ms);
|
|
}
|
|
}
|
|
}
|
|
} |