using System;
using System.Collections.Generic;
using System.Drawing;
namespace PaintDotNet.Camera
{
public interface ICamera
{
string GetName();
string GetSN();
///
/// 自动曝光 1:启用 , 0:禁用
///
int AutoExposure { get; set; }
///
/// 曝光时间
///
double ExposureTime { get; set; }
///
/// Bin 0:1x1,1:2x2.....暂时不常用
///
int BinningSum { get; set; }
///
/// 红色增益
///
int RedGain { get; set; }
///
/// 绿色增益
///
int GreenGain { get; set; }
///
/// 蓝色增益
///
int BlueGain { get; set; }
///
/// 色温
///
int ColorTemperature { get; set; }
///
/// 对比度
///
int Contrast { get; set; }
///
/// 选择分辨率
///
int ResolutionId { get; set; }
///
/// 全图时的分辨率
///
Size Resolution { get; }
///
/// 当前采集回图像的分辨率
///
Size CurrnetResolution { get; }
///
/// 平场校正
///
int FlatCorretion { get; set; }
///
/// 增益
///
int Gain { get; set; }
///
/// 伽马值
///
double Gamma { get; set; }
int LeftLevel { get; set; }
int RightLevel { get; set; }
///
/// 0:彩色 , 1:黑白
///
int GrayMode { get; set; }
///
/// HDR 高动态范围图像
///
int HDR { get; set; }
///
/// 水平镜像
///
bool HorizontalMirrored { get; set; }
///
/// 垂直镜像
///
bool VerticalMirrored { get; set; }
///
/// 自动曝光时的目标灰度
///
int Target { get; set; }
Range GetTargetRange();
///
/// 亮度
///
int Light { get; set; }
///
/// 旋转 0:原始,1:L90 , 2:180, 3:R90
///
int Rotate { set; }
///
/// 色彩饱和度
///
double Saturation { get; set; }
///
/// 图像锐度
///
int Sharpness { get; set; }
///
/// 白平衡:0手动,1自动
///
int WhiteBalanceMode { set; }
///
/// 预览回调
///
event Action FrameCallback;
void Close();
///
/// 平场校正计算
///
void FlatCalculate();
///
/// 平场校正采集
///
void FlatCapture();
Range GetColorChannelRang(int channel);
Range GetColorTemperatureRange();
Range GetExposureTimeRange();
Range GetGlobalGainRange();
Range GetLightRange();
List GetResolutionList();
void GetROI(ref int x, ref int y, ref int width, ref int height);
Range GetSaturationRange();
Range GetSharpnessRange();
bool IsOpen();
Bitmap OneShoot();
bool Open();
bool ReadRegisterData(out string snCode);
void RecStart(string fileName);
void RecStop();
void ResetROI();
void SetROI(int x, int y, int width, int height);
void StartPreview();
void StopPreview();
void RepairPreview();
}
}