Exemple #1
0
 private void ApplyImageProcessors()
 {
     if (_rgbProcessorStack == null || _rgbProcessorStack.Count == 0)
     {
         return;
     }
     //_rgbProcessorStack.Apply(GetAOI(), _bitmap);
     _rgbProcessorStack.Apply(null, _bitmap);//根据气象局遥感室业务人员的要求,不需要对感兴趣区域做增强。
 }
Exemple #2
0
        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);
        }