コード例 #1
0
 protected override void OnStateChange()
 {
     if (State == State.SetDefaults)
     {
         Name                     = "SampleDrawBitmap";
         Calculate                = Calculate.OnBarClose;
         IsOverlay                = true;
         ScaleJustification       = NinjaTrader.Gui.Chart.ScaleJustification.Right;
         IsSuspendedWhileInactive = true;
     }
     else if (State == State.Terminated)
     {
         if (myBitmap != null)
         {
             myBitmap.Dispose();
         }
         if (fileStream != null)
         {
             fileStream.Dispose();
         }
         if (bitmapDecoder != null)
         {
             bitmapDecoder.Dispose();
         }
         if (converter != null)
         {
             converter.Dispose();
         }
         if (frame != null)
         {
             frame.Dispose();
         }
     }
 }
コード例 #2
0
        protected override void OnStateChange()
        {
            if (State == State.SetDefaults)
            {
                Name                     = "SampleDrawBitmapFun";
                Calculate                = Calculate.OnBarClose;
                IsOverlay                = true;
                ScaleJustification       = NinjaTrader.Gui.Chart.ScaleJustification.Right;
                IsSuspendedWhileInactive = true;
            }
            else if (State == State.DataLoaded)
            {
                if (ChartControl != null)
                {
                    ChartPanel.MouseMove += new System.Windows.Input.MouseEventHandler(ChartControl_MouseMove);
                }
            }
            else if (State == State.Terminated)
            {
                if (myBitmap != null)
                {
                    myBitmap.Dispose();
                }
                if (fileStream != null)
                {
                    fileStream.Dispose();
                }
                if (bitmapDecoder != null)
                {
                    bitmapDecoder.Dispose();
                }
                if (converter != null)
                {
                    converter.Dispose();
                }
                if (frame != null)
                {
                    frame.Dispose();
                }

                if (ChartControl != null)
                {
                    ChartPanel.MouseMove -= new System.Windows.Input.MouseEventHandler(ChartControl_MouseMove);
                }

                if (RenderTarget != null)
                {
                    RenderTarget.Transform = Matrix3x2.Identity;
                }
            }
        }
コード例 #3
0
        private void LoadBitmap(RenderTarget device, byte[] bytes)
        {
            var stream = new MemoryStream(bytes);

            SharpDX.WIC.BitmapDecoder decoder = new SharpDX.WIC.BitmapDecoder(ImagingFactory, stream, SharpDX.WIC.DecodeOptions.CacheOnDemand);
            var frame = decoder.GetFrame(0);

            SharpDX.WIC.FormatConverter converter = new SharpDX.WIC.FormatConverter(ImagingFactory);
            try
            {
                // normal ARGB images (Bitmaps / png tested)
                converter.Initialize(frame, SharpDX.WIC.PixelFormat.Format32bppRGBA1010102);
            }
            catch
            {
                // falling back to RGB if unsupported
                converter.Initialize(frame, SharpDX.WIC.PixelFormat.Format32bppRGB);
            }
            SharpDXBitmap = Bitmap.FromWicBitmap(device, converter);

            converter.Dispose();
            frame.Dispose();
            decoder.Dispose();
            stream.Dispose();
        }
コード例 #4
0
 public void Dispose()
 {
     Direct2DResourceManager.OnResourceDestroy(this);
     if (Texture2D != null)
     {
         Texture2D.Dispose();
         Texture2D = null;
     }
     if (fConverter != null)
     {
         fConverter.Dispose();
         fConverter = null;
     }
     if (BFDecorde != null)
     {
         BFDecorde.Dispose();
         BFDecorde = null;
     }
     if (BitDecorder != null)
     {
         BitDecorder.Dispose();
         BitDecorder = null;
     }
     if (MemStream != null)
     {
         MemStream.Dispose();
         MemStream = null;
     }
 }
コード例 #5
0
 public static void LoadFromTiff(SharpDX.WIC.ImagingFactory imagingFactory, UnmanagedImage image, string filename, int bytesPerPixel)
 {
     // TODO: this function is more generic; rewrite to handle different formats/bytesPerPixel
     var decoder = new SharpDX.WIC.BitmapDecoder(imagingFactory, filename, SharpDX.WIC.DecodeOptions.CacheOnLoad);
     var bitmapFrameDecode = decoder.GetFrame(0);
     bitmapFrameDecode.CopyPixels(image.Width * bytesPerPixel, image.DataIntPtr, image.Width * image.Height * bytesPerPixel);
     bitmapFrameDecode.Dispose();
     decoder.Dispose();
 }
コード例 #6
0
ファイル: D2DImage.cs プロジェクト: tortuga69/GameOverlay.Net
        private void LoadBitmap(RenderTarget device, byte[] bytes)
        {
            if (device == null)
            {
                throw new ArgumentNullException(nameof(device));
            }
            if (bytes == null)
            {
                throw new ArgumentNullException(nameof(bytes));
            }

            try
            {
                var stream = new MemoryStream(bytes);
                SharpDX.WIC.BitmapDecoder decoder = new SharpDX.WIC.BitmapDecoder(ImagingFactory, stream, SharpDX.WIC.DecodeOptions.CacheOnDemand);
                var frame = decoder.GetFrame(0);
                SharpDX.WIC.FormatConverter converter = new SharpDX.WIC.FormatConverter(ImagingFactory);
                try
                {
                    // normal ARGB images (Bitmaps / png tested)
                    converter.Initialize(frame, SharpDX.WIC.PixelFormat.Format32bppRGBA1010102);
                }
                catch
                {
                    // falling back to RGB if unsupported
                    converter.Initialize(frame, SharpDX.WIC.PixelFormat.Format32bppRGB);
                }
                SharpDXBitmap = Bitmap.FromWicBitmap(device, converter);

                converter.Dispose();
                frame.Dispose();
                decoder.Dispose();
                stream.Dispose();
            }
            catch (Exception ex)
            {
                throw new FormatException("Invalid or unsupported image format!", ex);
            }
        }