private void ApplyImageProcessors() { if (_rgbProcessorStack == null || _rgbProcessorStack.Count == 0) { return; } //_rgbProcessorStack.Apply(GetAOI(), _bitmap); _rgbProcessorStack.Apply(null, _bitmap);//根据气象局遥感室业务人员的要求,不需要对感兴趣区域做增强。 }
protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); if (_originalBitmap != null) { using (Bitmap bitmap = _originalBitmap.Clone() as Bitmap) { sw.Start(); // _processorStack.Apply(null, bitmap); // this.Text = sw.ElapsedMilliseconds.ToString(); sw.Reset(); // e.Graphics.DrawImage(bitmap, 0, 0); } } }
public static Bitmap GetBitmapUseOriginResolution(this IRasterDrawing drawing) { IOverviewGenerator gen = drawing.DataProviderCopy as IOverviewGenerator; if (drawing.SelectedBandNos == null) { return(null); } Bitmap bm = null; if (drawing.SelectedBandNos.Length == 1) { bm = new Bitmap(drawing.DataProviderCopy.Width, drawing.DataProviderCopy.Height, PixelFormat.Format8bppIndexed); bm.Palette = BitmapBuilderFactory.GetDefaultGrayColorPalette(); } else { try { bm = new Bitmap(drawing.DataProviderCopy.Width, drawing.DataProviderCopy.Height, PixelFormat.Format24bppRgb); } catch (Exception ex) { throw new Exception(string.Format("无法创建过大的Bitmap[{0}*{1}]", drawing.DataProviderCopy.Width, drawing.DataProviderCopy.Height), ex.InnerException); } } string ext = Path.GetExtension(drawing.FileName).ToLower(); if (ext == ".bmp" || ext == ".png" || ext == ".jpg" || ext == ".jpeg") { bm = (Bitmap)Bitmap.FromFile(drawing.FileName); } else { gen.Generate(drawing.SelectedBandNos, ref bm); } IRgbProcessorStack stack = drawing.RgbProcessorStack; stack.Apply(null, bm); return(bm); }