| | |
| | | set.IsOriginSaved = !set.ImageSaveOption.IsSaveOriginImage; |
| | | set.IsFitSaved = !set.ImageSaveOption.IsSaveFitImage; |
| | | set.IsAddtionalSaved = string.IsNullOrWhiteSpace(set.ImageSaveOption.AddtionalSaveType); |
| | | set.OnImageSetTimeout += ImageSet_OnImageSetTimeout; |
| | | //set.OnImageSetTimeout += ImageSet_OnImageSetTimeout; |
| | | |
| | | _imageSetList[set.Id] = set; |
| | | } |
| | |
| | | set.IsOriginSaved = !set.ImageSaveOption.IsSaveOriginImage; |
| | | set.IsFitSaved = !set.ImageSaveOption.IsSaveFitImage; |
| | | set.IsAddtionalSaved = string.IsNullOrWhiteSpace(set.ImageSaveOption.AddtionalSaveType); |
| | | set.OnImageSetTimeout += ImageSet_OnImageSetTimeout; |
| | | //set.OnImageSetTimeout += ImageSet_OnImageSetTimeout; |
| | | _imageSetList[set.Id] = set; |
| | | } |
| | | |
| | |
| | | // && (!set.ImageSaveOption.IsSaveNGImage || set.IsNGSaved)) |
| | | if (set.IsOriginSaved && set.IsFitSaved && set.IsAddtionalSaved) |
| | | { |
| | | set.Dispose(); |
| | | |
| | | _imageSetList.Remove(set.Id); |
| | | LogAsync(DateTime.Now, $"移除图片信息,当前缓存数量:{_imageSetList.Count}", ""); |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | public void ClearImageSet(string imgSetId) |
| | | { |
| | | IImageSet set = _imageSetList[imgSetId]; |
| | | if (set != null) |
| | | ClearImageSet(set); |
| | | } |
| | | //public void ClearImageSet(string imgSetId) |
| | | //{ |
| | | // IImageSet set = _imageSetList[imgSetId]; |
| | | // if (set != null) |
| | | // ClearImageSet(set); |
| | | //} |
| | | |
| | | private void ImageSet_OnImageSetTimeout(ImageSet set) |
| | | { |
| | | ClearImageSet(set); |
| | | } |
| | | //private void ImageSet_OnImageSetTimeout(ImageSet set) |
| | | //{ |
| | | // ClearImageSet(set); |
| | | //} |
| | | |
| | | //private void ClearImageSetPeriodically() |
| | | //{ |
| | |
| | | { |
| | | await Task.Run(() => |
| | | { |
| | | Thread.Sleep(1000); |
| | | //Thread.Sleep(1000); |
| | | int widthIn4 = (int)Math.Ceiling(width / 4.0) * 4; |
| | | |
| | | Bitmap bmp = new Bitmap(widthIn4, height, PixelFormat.Format48bppRgb); |
| | |
| | | [Category("图片保存")] |
| | | [Description("是否保存原始图片")] |
| | | [DisplayName("保存原始图片")] |
| | | public bool IsSaveOriginImage { get; set; } = true; |
| | | public bool IsSaveOriginImage { get; set; } = false; |
| | | |
| | | [Category("图片保存")] |
| | | [Description("图片保存格式")] |
| | |
| | | bool IsFitSaved { get; set; } |
| | | bool IsAddtionalSaved { get; set; } |
| | | |
| | | event Action<ImageSet> OnImageSetTimeout; |
| | | //event Action<ImageSet> OnImageSetTimeout; |
| | | |
| | | /// <summary> |
| | | /// 序列化操作的图像信息 |
| | |
| | | |
| | | public virtual string ImageData { get; set; } |
| | | |
| | | public event Action<ImageSet> OnImageSetTimeout; |
| | | private Timer autoDisposeTimer = null; |
| | | //public event Action<ImageSet> OnImageSetTimeout; |
| | | //private Timer autoDisposeTimer = null; |
| | | |
| | | public void Dispose(object state) |
| | | { |
| | | OnImageSetTimeout?.Invoke(this); |
| | | //OnImageSetTimeout?.Invoke(this); |
| | | |
| | | autoDisposeTimer.Change(-1, -1); |
| | | autoDisposeTimer.Dispose(); |
| | | //autoDisposeTimer.Change(-1, -1); |
| | | //autoDisposeTimer.Dispose(); |
| | | |
| | | Image?.Dispose(); |
| | | Image = null; |
| | | } |
| | | |
| | | public virtual void Dispose() |
| | |
| | | |
| | | public ImageSet() |
| | | { |
| | | autoDisposeTimer = new Timer(Dispose, null, 10 * 1000, -1); |
| | | //autoDisposeTimer = new Timer(Dispose, null, 10 * 1000, -1); |
| | | } |
| | | #endregion |
| | | } |