Exemplo n.º 1
0
        public void MouseLeftButtonDownAction(object sender, MouseButtonEventArgs e)
        {
            ToClientV.MySelf.Visibility = System.Windows.Visibility.Collapsed;
            UIElement rootUI = App.Current.RootVisual;
            WriteableBitmap wb = new WriteableBitmap(rootUI, null);
            int width = wb.PixelWidth;
            int height = wb.PixelHeight;
            int bands = 3;
            byte[][,] raster = new byte[bands][,];
            for (int i = 0; i < bands; i++)
            {
                raster[i] = new byte[width, height];
            }
            for (int row = 0; row < height; row++)
            {
                for (int column = 0; column < width; column++)
                {
                    int pixel = wb.Pixels[width * row + column];
                    raster[0][column, row] = (byte)(pixel >> 16);
                    raster[1][column, row] = (byte)(pixel >> 8);
                    raster[2][column, row] = (byte)pixel;
                }
            }
            FluxJpeg.Core.ColorModel model = new FluxJpeg.Core.ColorModel { colorspace = FluxJpeg.Core.ColorSpace.RGB };
            FluxJpeg.Core.Image img = new FluxJpeg.Core.Image(model, raster);
            MemoryStream stream = new MemoryStream();
            FluxJpeg.Core.Encoder.JpegEncoder encoder = new FluxJpeg.Core.Encoder.JpegEncoder(img, 100, stream);
            encoder.Encode();
            stream.Seek(0, SeekOrigin.Begin);
            byte[] binaryData = stream.ToArray();

            Command.Execute(binaryData);
            ToClientV.MySelf.Visibility = System.Windows.Visibility.Visible;
        }
Exemplo n.º 2
0
Arquivo: Image.cs Projeto: JuRogn/OA
 public Image(FluxJpeg.Core.ColorModel cm, byte[][,] raster)
 {
     this.width = raster[0].GetLength(0);
     this.height = raster[0].GetLength(1);
     this._cm = cm;
     this._raster = raster;
 }
Exemplo n.º 3
0
 public Image(FluxJpeg.Core.ColorModel cm, byte[][,] raster)
 {
     this.width   = raster[0].GetLength(0);
     this.height  = raster[0].GetLength(1);
     this._cm     = cm;
     this._raster = raster;
 }
Exemplo n.º 4
0
        private void SaveToFile(WriteableBitmap bitmap, Stream fs)
        {
            int width  = bitmap.PixelWidth;
            int height = bitmap.PixelHeight;
            int bands  = 3;

            byte[][,] raster = new byte[bands][, ];

            for (int i = 0; i < bands; i++)
            {
                raster[i] = new byte[width, height];
            }

            for (int row = 0; row < height; row++)
            {
                for (int column = 0; column < width; column++)
                {
                    int pixel = bitmap.Pixels[width * row + column];
                    raster[0][column, row] = (byte)(pixel >> 16);
                    raster[1][column, row] = (byte)(pixel >> 8);
                    raster[2][column, row] = (byte)pixel;
                }
            }

            FluxJpeg.Core.ColorModel model = new FluxJpeg.Core.ColorModel {
                colorspace = FluxJpeg.Core.ColorSpace.RGB
            };
            FluxJpeg.Core.Image img = new FluxJpeg.Core.Image(model, raster);

            //Encode the Image as a JPEG
            MemoryStream stream = new MemoryStream();

            FluxJpeg.Core.Encoder.JpegEncoder encoder = new FluxJpeg.Core.Encoder.JpegEncoder(img, 100, stream);
            encoder.Encode();

            //Back to the start
            stream.Seek(0, SeekOrigin.Begin);

            //Get teh Bytes and write them to the stream
            byte[] binaryData = new byte[stream.Length];
            long   bytesRead  = stream.Read(binaryData, 0, (int)stream.Length);

            fs.Write(binaryData, 0, binaryData.Length);
        }
        public void MouseLeftButtonUpAction(object sender, MouseButtonEventArgs e)
        {
            if (!ended)
            { return; }
            isPressed = false;
            WriteableBitmap twb = new WriteableBitmap(ShotGrid, null);
            int width = twb.PixelWidth;
            int height = twb.PixelHeight;
            int bands = 3;
            byte[][,] raster = new byte[bands][,];
            for (int i = 0; i < bands; i++)
            {
                raster[i] = new byte[width, height];
            }
            for (int row = 0; row < height; row++)
            {
                for (int column = 0; column < width; column++)
                {
                    int pixel = twb.Pixels[width*row+column];
                    raster[0][column, row] = (byte)(pixel >> 16);
                    raster[1][column, row] = (byte)(pixel >> 8);
                    raster[2][column, row] = (byte)pixel;
                }
            }

            FluxJpeg.Core.ColorModel model = new FluxJpeg.Core.ColorModel { colorspace = FluxJpeg.Core.ColorSpace.RGB };
            FluxJpeg.Core.Image img = new FluxJpeg.Core.Image(model, raster);
            MemoryStream stream = new MemoryStream();
            FluxJpeg.Core.Encoder.JpegEncoder encoder = new FluxJpeg.Core.Encoder.JpegEncoder(img, 100, stream);
            encoder.Encode();
            stream.Seek(0, SeekOrigin.Begin);
            byte[] binaryData = stream.ToArray();
            save.Execute(binaryData);
            p.Children.Remove(this);
            ended = false;
        }