Ejemplo n.º 1
0
        private void InitializeBitmapEncoder()
        {
            switch (EncodingFormat)
            {
            case BitmapEncoding.BMP:
                Encoder = new BmpBitmapEncoder();
                break;

            case BitmapEncoding.GIF:
                Encoder = new GifBitmapEncoder();
                break;

            case BitmapEncoding.JPEG:
                Encoder = new JpegBitmapEncoder();
                break;

            case BitmapEncoding.PNG:
                Encoder = new PngBitmapEncoder();
                break;

            case BitmapEncoding.TIFF:
                Encoder = new TiffBitmapEncoder();
                break;

            case BitmapEncoding.WMP:
                Encoder = new WmpBitmapEncoder();
                break;
            }
        }
Ejemplo n.º 2
0
        public static BitmapEncoder CreateEncoder(BitmapEncoderType encoderType, BitmapSource bitmapSource)
        {
            BitmapEncoder bitmapEncoder;

            switch (encoderType)
            {
            case BitmapEncoderType.BMP:
                bitmapEncoder = new BmpBitmapEncoder();
                break;

            case BitmapEncoderType.GIF:
                bitmapEncoder = new GifBitmapEncoder();
                break;

            case BitmapEncoderType.PNG:
                bitmapEncoder = new PngBitmapEncoder();
                break;

            case BitmapEncoderType.TIFF:
                bitmapEncoder = new TiffBitmapEncoder();
                break;

            case BitmapEncoderType.WMP:
                bitmapEncoder = new WmpBitmapEncoder();
                break;

            default:
                bitmapEncoder = new JpegBitmapEncoder();
                break;
            }

            bitmapEncoder.Frames.Add(BitmapFrame.Create(bitmapSource));
            return(bitmapEncoder);
        }
Ejemplo n.º 3
0
        public void ToColorBitmapQ(int h, int w, int b, ColorImageFormat f, byte[] pd)
        {
            int width  = w;
            int height = h;
            int bpp    = b;
            var format = f;

            byte[] pixelData = pd;
            int    stride    = width * PixelFormats.Bgr32.BitsPerPixel / 8;
            var    temp      = BitmapSource.Create(width, height, 96.0, 96.0, PixelFormats.Bgr32, null, pixelData, stride);

            temp.Freeze();
            long             milliseconds = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;
            MemoryStream     mems         = new MemoryStream();
            WmpBitmapEncoder encoder      = new WmpBitmapEncoder();
            BitmapFrame      bframe       = BitmapFrame.Create(temp);

            encoder.ImageQualityLevel = qual;
            encoder.Frames.Add(bframe);
            encoder.Save(mems);
            qual -= 0.0001F;
            qual  = Math.Max(qual, 0);
            try
            {
                MainWindow.RGBConcurrentQueue.Enqueue(mems);
            }
            catch (Exception e)
            {
                qual = 0;
            }
        }
Ejemplo n.º 4
0
        public static BitmapEncoder CreateBitmapEncoder(BitmapEncodingMode mode)
        {
            BitmapEncoder e = null;

            switch (mode)
            {
            case BitmapEncodingMode.Bmp:
                e = new BmpBitmapEncoder();
                break;

            case BitmapEncodingMode.Gif:
                e = new GifBitmapEncoder();
                break;

            case BitmapEncodingMode.Jpeg:
                e = new JpegBitmapEncoder();
                break;

            case BitmapEncodingMode.Png:
                e = new PngBitmapEncoder();
                break;

            case BitmapEncodingMode.Tiff:
                e = new TiffBitmapEncoder();
                break;

            case BitmapEncodingMode.Wmp:
                e = new WmpBitmapEncoder();
                break;
            }

            return(e);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Write the bitmap to the file in the encoding implied by the extension of the
        /// destination file.
        /// </summary>
        /// <param name="Bitmap"></param>
        /// <param name="ToFilePath"></param>
        public static void WriteToFile(this BitmapSource Bitmap, string ToFilePath)
        {
            var ext = global::System.IO.Path.GetExtension(ToFilePath).ToLower();
            var ms  = new MemoryStream();

            if ((ext == ".jpg") || (ext == ".jpeg"))
            {
                var encoder = new JpegBitmapEncoder();
                encoder.Frames.Add(BitmapFrame.Create(Bitmap));
                encoder.Save(ms);
            }

            else if ((ext == ".tif") || (ext == ".tiff"))
            {
                var encoder = new TiffBitmapEncoder();
                encoder.Frames.Add(BitmapFrame.Create(Bitmap));
                encoder.Save(ms);
            }

            else if (ext == ".png")
            {
                var encoder = new PngBitmapEncoder();
                encoder.Frames.Add(BitmapFrame.Create(Bitmap));
                encoder.Save(ms);
            }

            else if (ext == ".bmp")
            {
                var encoder = new BmpBitmapEncoder();
                encoder.Frames.Add(BitmapFrame.Create(Bitmap));
                encoder.Save(ms);
            }

            else if (ext == ".gif")
            {
                var encoder = new GifBitmapEncoder();
                encoder.Frames.Add(BitmapFrame.Create(Bitmap));
                encoder.Save(ms);
            }

            else if (ext == ".wmp")
            {
                var encoder = new WmpBitmapEncoder();
                encoder.Frames.Add(BitmapFrame.Create(Bitmap));
                encoder.Save(ms);
            }

            else
            {
                throw new Exception("extension of file " + ToFilePath + " not supported.");
            }

            byte[] bytes = new byte[ms.Length];
            ms.Seek(0, SeekOrigin.Begin);
            ms.Read(bytes, 0, (int)ms.Length);
            ms.Close();

            global::System.IO.File.WriteAllBytes(ToFilePath, bytes);
        }
        /// <summary>
        ///     Gets the encoded image data.
        /// </summary>
        /// <param name="image">The image.</param>
        /// <param name="preferredFormat">The preferred Image format.</param>
        /// <param name="qualityLevel">JpegBitmapEncoder QualityLevel</param>
        /// <returns></returns>
        public static byte[] ToEncodedBuffer(this BitmapSource image, ImageFormat preferredFormat, int qualityLevel)
        {
            byte[]        result  = default(byte[]);
            BitmapEncoder encoder = default(BitmapEncoder);

            if (image == null)
            {
                return(null);
            }

            switch (preferredFormat)
            {
            case ImageFormat.JPEG:
            case ImageFormat.JPG:
                encoder = new JpegBitmapEncoder
                {
                    QualityLevel = qualityLevel
                };
                break;

            case ImageFormat.BMP:
                encoder = new BmpBitmapEncoder();
                break;

            case ImageFormat.PNG:
                encoder = new PngBitmapEncoder();
                break;

            case ImageFormat.TIFF:
            case ImageFormat.TIF:
                encoder = new TiffBitmapEncoder();
                break;

            case ImageFormat.GIF:
                encoder = new GifBitmapEncoder();
                break;

            case ImageFormat.WMP:
                encoder = new WmpBitmapEncoder();
                break;
            }
            using (var stream = new MemoryStream())
            {
                if (encoder != null)
                {
                    encoder.Frames.Add(BitmapFrame.Create(image));
                    encoder.Save(stream);
                }
                stream.Seek(0, SeekOrigin.Begin);
                result = new byte[stream.Length];
                using (var br = new BinaryReader(stream))
                {
                    br.Read(result, 0, (int)stream.Length);
                    br.Close();
                }
                stream.Close();
                return(result);
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Save a solved map to an image file.
        /// </summary>
        /// <param name="path"></param>
        /// <param name="map"></param>
        /// <param name="outputPath"></param>
        public static void OutputBitmap(
            MapPath path,
            Map map,
            string outputPath)
        {
            // Get pixels from original map data.
            byte[] pixels = path.TraceOverMap(map);

            // Output the bitmap.
            string        extension = Path.GetExtension(outputPath);
            BitmapEncoder encoder;

            switch (extension)
            {
            default:
                encoder = new BmpBitmapEncoder();
                break;

            case ".png":
                encoder = new PngBitmapEncoder();
                break;

            case ".gif":
                encoder = new GifBitmapEncoder();
                break;

            case ".tif":
            case "tiff":
                encoder = new TiffBitmapEncoder();
                break;

            case ".jpg":
            case "jpeg":
                encoder = new JpegBitmapEncoder();
                break;

            case ".wmp":
                encoder = new WmpBitmapEncoder();
                break;
            }

            Console.WriteLine(extension);

            // TODO: Figure out why files have no compression.
            int          stride       = map.Width * Map.BytesPerPixel;
            BitmapSource bitmapSource = BitmapSource.Create(
                map.Width, map.Height,
                96, 96,
                PixelFormats.Bgra32, null, pixels, stride);

            encoder.Frames.Add(BitmapFrame.Create(bitmapSource));

            using (FileStream filestream = new FileStream(outputPath, FileMode.Create))
            {
                encoder.Save(filestream);
            }
        }
Ejemplo n.º 8
0
        public void CaptureSnapshot()
        {
            RenderTargetBitmap renderTarget = Window.CaptureSnapshot();

            Microsoft.Win32.SaveFileDialog saveFileDialog = new Microsoft.Win32.SaveFileDialog();
            saveFileDialog.Filter       = "BMP files (*.bmp)|*.bmp|GIF files (*.gif)|*.gif|JPEG files (*.jpg)|*.jpg|PNG files (*.png)|*.png|TIFF files (*.tif)|*.tif|WMP files (*.wmp)|*.wmp|All files (*.*)|*.*";
            saveFileDialog.FilterIndex  = 4;
            saveFileDialog.DefaultExt   = "png";
            saveFileDialog.FileName     = DateTime.Now.ToString("yyyyMMddHHmmssffff");
            saveFileDialog.AddExtension = true;
            if (saveFileDialog.ShowDialog(Window) == false)
            {
                return;
            }

            BitmapFrame   bitmapFrame   = BitmapFrame.Create(renderTarget);
            BitmapEncoder bitmapEncoder = null;

            switch (Path.GetExtension(saveFileDialog.FileName).Substring(1).ToLower())
            {
            case "bmp":
                bitmapEncoder = new BmpBitmapEncoder();
                break;

            case "gif":
                bitmapEncoder = new GifBitmapEncoder();
                break;

            case "jpg":
            case "jpeg":
                bitmapEncoder = new JpegBitmapEncoder();
                break;

            case "png":
                bitmapEncoder = new PngBitmapEncoder();
                break;

            case "tif":
            case "tiff":
                bitmapEncoder = new TiffBitmapEncoder();
                break;

            case "wmp":
                bitmapEncoder = new WmpBitmapEncoder();
                break;
            }
            if (bitmapEncoder == null)
            {
                MessageBox.Show("不支持的格式");
                return;
            }
            bitmapEncoder.Frames.Add(bitmapFrame);
            using (FileStream fileStream = new FileStream("capture.png", FileMode.Create, FileAccess.Write))
            {
                bitmapEncoder.Save(fileStream);
            }
        }
Ejemplo n.º 9
0
 /// <summary>
 /// Сохранить изображение в формате WMP (Microsoft Windows Media Photo).
 /// </summary>
 /// <param name="bmp">Сохраняемое изображение</param>
 /// <param name="path">Путь по которому будет сохранено изображение</param>
 public static void SaveInWmp(BitmapSource bmp, string path)
 {
     using (FileStream fileStream = new FileStream(path, FileMode.CreateNew, FileAccess.Write, FileShare.None))
     {
         WmpBitmapEncoder wmpEncoder = new WmpBitmapEncoder();
         wmpEncoder.Frames.Add(BitmapFrame.Create(bmp));
         wmpEncoder.Save(fileStream);
     }
 }
Ejemplo n.º 10
0
        public void SaveImageToFile(string path)
        {
            string        extension = Path.GetExtension(path).ToLower();
            DrawingVisual dv        = new DrawingVisual();

            using (DrawingContext dc = dv.RenderOpen())
            {
                if (extension == ".bmp" || extension == "jpg")
                {
                    dc.DrawRectangle(Brushes.White, null, new Rect(0, 0, Math.Ceiling(Width + Location.X * 2), Math.Ceiling(Width + Location.Y * 2)));
                }
                ActiveChild.DrawEquation(dc);
            }
            RenderTargetBitmap bitmap = new RenderTargetBitmap((int)(Math.Ceiling(Width + Location.X * 2)), (int)(Math.Ceiling(Height + Location.Y * 2)), 96, 96, PixelFormats.Default);

            bitmap.Render(dv);
            BitmapEncoder encoder = null;

            switch (extension)
            {
            case ".jpg":
                encoder = new JpegBitmapEncoder();
                break;

            case ".gif":
                encoder = new GifBitmapEncoder();
                break;

            case ".bmp":
                encoder = new BmpBitmapEncoder();
                break;

            case ".png":
                encoder = new PngBitmapEncoder();
                break;

            case ".wdp":
                encoder = new WmpBitmapEncoder();
                break;

            case ".tif":
                encoder = new TiffBitmapEncoder();
                break;
            }
            try
            {
                encoder.Frames.Add(BitmapFrame.Create(bitmap));
                using (Stream s = File.Create(path))
                {
                    encoder.Save(s);
                }
            }
            catch
            {
                MessageBox.Show("File could not be saved. Please make sure the path you entered is correct", "Error");
            }
        }
Ejemplo n.º 11
0
        //        「名前を付けて保存」ダイアログボックスを表示する - .NET Tips(VB.NET, C#...)
        //https://dobon.net/vb/dotnet/form/savefiledialog.html
        //画像保存
        private void SaveImage()
        {
            var saveFileDialog = new Microsoft.Win32.SaveFileDialog();

            saveFileDialog.Filter       = "*.png|*.png|*.jpg|*.jpg;*.jpeg|*.bmp|*.bmp|*.gif|*.gif|*.tiff|*.tiff|*.wdp|*.wdp;*jxr";
            saveFileDialog.AddExtension = true;//ファイル名に拡張子追加
            //初期フォルダ指定、開いている画像と同じフォルダ
            saveFileDialog.InitialDirectory = System.IO.Path.GetDirectoryName(ImageFileFullPath);
            saveFileDialog.FileName         = GetSaveFileName();
            if (saveFileDialog.ShowDialog() == true)
            {
                BitmapEncoder encoder = null;
                switch (saveFileDialog.FilterIndex)
                {
                case 1:
                    encoder = new PngBitmapEncoder();
                    break;

                case 2:
                    encoder = new JpegBitmapEncoder();
                    break;

                case 3:
                    encoder = new BmpBitmapEncoder();
                    break;

                case 4:
                    encoder = new GifBitmapEncoder();
                    break;

                case 5:
                    //tiffは圧縮方式をコンボボックスから取得
                    var tiff = new TiffBitmapEncoder();
                    tiff.Compression = (TiffCompressOption)ComboboxTiffCompress.SelectedItem;
                    encoder          = tiff;
                    break;

                case 6:
                    //wmpはロスレス指定、じゃないと1bppで保存時に画像が崩れるしファイルサイズも大きくなる
                    var wmp = new WmpBitmapEncoder();
                    wmp.ImageQualityLevel = 1.0f;
                    encoder = wmp;
                    break;

                default:
                    break;
                }

                encoder.Frames.Add(BitmapFrame.Create(GetSaveImage()));
                using (var fs = new FileStream(saveFileDialog.FileName, FileMode.Create, FileAccess.Write))
                {
                    encoder.Save(fs);
                }
            }
        }
        GetEncoder(
            BitmapSource bitmapSource
            )
        {
            BitmapEncoder encoder = null;

            if (bitmapSource is BitmapFrame)
            {
                //
                // This code gets the encoder based on the decoder that was
                // used for this specific BitmapSource.
                //
                BitmapFrame     bitmapImage = bitmapSource as BitmapFrame;
                BitmapCodecInfo codecInfo   = null;

                if (bitmapImage != null && bitmapImage.Decoder != null)
                {
                    codecInfo = bitmapImage.Decoder.CodecInfo;
                }

                if (codecInfo != null)
                {
                    encoder = BitmapEncoder.Create(codecInfo.ContainerFormat);

                    // Avoid GIF encoder which does not save transparency well
                    if (!(encoder is JpegBitmapEncoder ||
                          encoder is PngBitmapEncoder ||
                          encoder is TiffBitmapEncoder ||
                          encoder is WmpBitmapEncoder)
                        )
                    {
                        encoder = null;
                    }
                }
            }

            //
            // The code above assumes that the BitmapSource is actually
            // a BitmapImage.  If it is not then we assume Png and use
            // that encoder.
            //
            if (encoder == null)
            {
                if (Microsoft.Internal.AlphaFlattener.Utility.NeedPremultiplyAlpha(bitmapSource))
                {
                    encoder = new WmpBitmapEncoder();
                }
                else
                {
                    encoder = new PngBitmapEncoder();
                }
            }

            return(encoder);
        }
Ejemplo n.º 13
0
        internal byte[] GetEncodedImageData(ImageSource image, string preferredFormat)
        {
            try
            {
                byte[]        result  = null;
                BitmapEncoder encoder = null;
                switch (preferredFormat.ToLower())
                {
                case ".jpg":
                case ".jpeg":
                    encoder = new JpegBitmapEncoder();
                    break;

                case ".bmp":
                    encoder = new BmpBitmapEncoder();
                    break;

                case ".png":
                    encoder = new PngBitmapEncoder();
                    break;

                case ".tif":
                case ".tiff":
                    encoder = new TiffBitmapEncoder();
                    break;

                case ".gif":
                    encoder = new GifBitmapEncoder();
                    break;

                case ".wmp":
                    encoder = new WmpBitmapEncoder();
                    break;
                }
                if (image is BitmapSource)
                {
                    MemoryStream stream = new MemoryStream();
                    encoder.Frames.Add(BitmapFrame.Create(image as BitmapSource));
                    encoder.Save(stream);
                    stream.Seek(0, SeekOrigin.Begin);
                    result = new byte[stream.Length];
                    BinaryReader br = new BinaryReader(stream);
                    br.Read(result, 0, (int)stream.Length);
                    br.Close();
                    stream.Close();
                }
                return(result);
            }
            catch (System.Exception ex1)
            {
                MessageBox.Show("exception: " + ex1, "Error!");
            }
            return(null);
        }
Ejemplo n.º 14
0
        private static byte[] GetEncodedImageData(BitmapSource source, string preferredFormat)
        {
            byte[]        result = null;
            BitmapEncoder encoder;

            switch (preferredFormat.ToLower())
            {
            case ".jpg":
            case ".jpeg":
                encoder = new JpegBitmapEncoder();
                break;

            case ".bmp":
                encoder = new BmpBitmapEncoder();
                break;

            case ".png":
                encoder = new PngBitmapEncoder();
                break;

            case ".tif":
            case ".tiff":
                encoder = new TiffBitmapEncoder();
                break;

            case ".gif":
                encoder = new GifBitmapEncoder();
                break;

            case ".wmp":
                encoder = new WmpBitmapEncoder();
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            encoder.Frames.Add(BitmapFrame.Create(source));

            using (var stream = new MemoryStream())
            {
                encoder.Save(stream);
                stream.Seek(0, SeekOrigin.Begin);
                result = new byte[stream.Length];
                using (var br = new BinaryReader(stream))
                {
                    br.Read(result, 0, (int)stream.Length);
                }
            }

            return(result);
        }
Ejemplo n.º 15
0
        internal byte[] GetEncodedImageData(ImageSource image, string preferredFormat)

        {
            byte[] result = null;

            BitmapEncoder encoder = null;

            switch (preferredFormat.ToLower())

            {
            case ".jpg":
            case ".jpeg":
                encoder = new JpegBitmapEncoder();
                break;

            case ".bmp":
                encoder = new BmpBitmapEncoder();
                break;

            case ".png":
                encoder = new PngBitmapEncoder();
                break;

            case ".tif":
            case ".tiff":
                encoder = new TiffBitmapEncoder();
                break;

            case ".gif":
                encoder = new GifBitmapEncoder();
                break;

            case ".wmp":
                encoder = new WmpBitmapEncoder();
                break;
            }
            if (image is BitmapSource)
            {
                using (var stream = new MemoryStream())
                {
                    encoder.Frames.Add(BitmapFrame.Create(image as BitmapSource));
                    encoder.Save(stream);
                    stream.Seek(0, SeekOrigin.Begin);
                    result = new byte[stream.Length];
                    var br = new BinaryReader(stream);
                    br.Read(result, 0, (int)stream.Length);
                }
            }

            return(result);
        }
Ejemplo n.º 16
0
        /// <summary>
        /// Export the Sparrow Chart as Image
        /// </summary>
        /// <param name="fileName">Output File Name to Export the Chart as Image</param>
        public void ExportAsImage(string fileName)
        {
            string fileExtension = new FileInfo(fileName).Extension.ToLower(CultureInfo.InvariantCulture);

            BitmapEncoder imageEncoder = null;

            switch (fileExtension)
            {
            case ".bmp":
                imageEncoder = new BmpBitmapEncoder();
                break;

            case ".jpg":
            case ".jpeg":
                imageEncoder = new JpegBitmapEncoder();
                break;

            case ".png":
                imageEncoder = new PngBitmapEncoder();
                break;

            case ".gif":
                imageEncoder = new GifBitmapEncoder();
                break;

            case ".tif":
            case ".tiff":
                imageEncoder = new TiffBitmapEncoder();
                break;

            case ".wdp":
                imageEncoder = new WmpBitmapEncoder();
                break;

            default:
                imageEncoder = new BmpBitmapEncoder();
                break;
            }

            RenderTargetBitmap bmpSource = new RenderTargetBitmap((int)this.ActualWidth, (int)this.ActualHeight, 96, 96, PixelFormats.Pbgra32);

            bmpSource.Render(this);

            imageEncoder.Frames.Add(BitmapFrame.Create(bmpSource));
            using (Stream stream = File.Create(fileName))
            {
                imageEncoder.Save(stream);
                stream.Close();
            }
        }
Ejemplo n.º 17
0
        private void DisplayVisual(RenderTargetBitmap target, string outputFile, bool Save = false)
        {
            // should be apparent that is is a funtion to help determine what type file the original picture was and helps in saving it in its native format after manipulation
            // probably should be shortened to either png or jpg only just for simplicity sake and to help any future coding to be easier as to determine what if any other file types are to be manipulated
            BitmapEncoder encoder = null;

            switch (System.IO.Path.GetExtension(outputFile))
            {
            case ".png":
                encoder = new PngBitmapEncoder();
                break;
            // more encoders here

            case ".jpeg":
                encoder = new JpegBitmapEncoder();
                break;

            case ".jpg":
                encoder = new JpegBitmapEncoder();
                break;

            case ".bmp":
                encoder = new BmpBitmapEncoder();
                break;

            case ".wmp":
                encoder = new WmpBitmapEncoder();
                break;

            case ".tiff":
                encoder = new TiffBitmapEncoder();
                break;

            case ".gif":
                encoder = new GifBitmapEncoder();
                break;
            }
            if (encoder != null)
            {
                encoder.Frames.Add(BitmapFrame.Create(target));
                if (Save)
                {
                    using (FileStream outputStream = new FileStream(outputFile, FileMode.Create))
                    {
                        encoder.Save(outputStream);
                    }
                }
            }
        }
Ejemplo n.º 18
0
        private void DisplayVisual(RenderTargetBitmap target, string outputFile, bool Save = false)
        {        // part 2 of the display to save operation... this is picking out the appropriate encoder for saving the file in the format that was opened
            BitmapEncoder encoder = null;

            switch (System.IO.Path.GetExtension(outputFile))
            {
            case ".png":
                encoder = new PngBitmapEncoder();
                break;

            case ".jpeg":
                encoder = new JpegBitmapEncoder();
                break;

            case ".jpg":
                encoder = new JpegBitmapEncoder();
                break;

            case ".bmp":
                encoder = new BmpBitmapEncoder();
                break;

            case ".wmp":
                encoder = new WmpBitmapEncoder();
                break;

            case ".tiff":
                encoder = new TiffBitmapEncoder();
                break;

            case ".gif":
                encoder = new GifBitmapEncoder();
                break;
            }
            if (encoder != null)
            {
                encoder.Frames.Add(BitmapFrame.Create(target));
                if (Save)
                {
                    using (FileStream outputStream = new FileStream(outputFile, FileMode.Create))
                    {                               //get ready to save stream set
                        encoder.Save(outputStream); //ok spit that shit to the file biatch
                        PopTheTopOfListBox();       // ok now then since the file has been appropriated then we can remove its name from our list of files to appropriate
                        //	UploadImage(outputFile);
                    }
                }
            }
        }
Ejemplo n.º 19
0
        public static bool SaveImageRender(FrameworkElement visual, string path, ImageResolutions res)
        {
            try
            {
                var bmp = new RenderTargetBitmap((int)visual.ActualWidth, (int)visual.ActualHeight, 96, 96, PixelFormats.Default);
                bmp.Render(visual);
                BitmapEncoder encoder;
                switch (res)
                {
                case ImageResolutions.BMP:
                    encoder = new BmpBitmapEncoder();
                    break;

                case ImageResolutions.GIF:
                    encoder = new GifBitmapEncoder();
                    break;

                case ImageResolutions.JPG:
                    encoder = new JpegBitmapEncoder();
                    break;

                case ImageResolutions.PNG:
                    encoder = new PngBitmapEncoder();
                    break;

                case ImageResolutions.TIF:
                    encoder = new TiffBitmapEncoder();
                    break;

                case ImageResolutions.WDP:
                    encoder = new WmpBitmapEncoder();
                    break;

                default:
                    encoder = new JpegBitmapEncoder();
                    break;
                }
                encoder.Frames.Add(BitmapFrame.Create(bmp));
                using (var img = File.Create(path))
                    encoder.Save(img);
                return(true);
            }
            catch (Exception excp)
            {
                MessageBox.Show(excp.Message, "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                return(false);
            }
        }
Ejemplo n.º 20
0
        public static byte[] ImageSourceToBytes(ImageSource image, string preferredFormat)
        {
            byte[]        result  = null;
            BitmapEncoder encoder = null;

            switch (preferredFormat.ToLower())
            {
            case "jpg":
            case "jpeg":
                encoder = new JpegBitmapEncoder();
                break;

            case "bmp":
                encoder = new BmpBitmapEncoder();
                break;

            case "png":
                encoder = new PngBitmapEncoder();
                break;

            case "tif":
            case "tiff":
                encoder = new TiffBitmapEncoder();
                break;

            case "gif":
                encoder = new GifBitmapEncoder();
                break;

            case "wmp":
                encoder = new WmpBitmapEncoder();
                break;
            }

            if (image is BitmapSource)
            {
                MemoryStream stream = new MemoryStream();
                encoder.Frames.Add(BitmapFrame.Create(image as BitmapSource));
                encoder.Save(stream);
                stream.Seek(0, SeekOrigin.Begin);
                result = new byte[stream.Length];
                BinaryReader br = new BinaryReader(stream);
                br.Read(result, 0, (int)stream.Length);
                br.Close();
                stream.Close();
            }
            return(result);
        }
Ejemplo n.º 21
0
        private static BitmapEncoder GetBitmapEncoder(string fileExtension,
                                                      ImageEncoderType encoderType)
        {
            BitmapEncoder bitampEncoder = null;


            switch (encoderType)
            {
            case ImageEncoderType.BmpBitmap:
                bitampEncoder = new BmpBitmapEncoder();
                break;

            case ImageEncoderType.GifBitmap:
                bitampEncoder = new GifBitmapEncoder();
                break;

            case ImageEncoderType.JpegBitmap:
                JpegBitmapEncoder jpgEncoder = new JpegBitmapEncoder();
                // Set the default/user options...
                bitampEncoder = jpgEncoder;
                break;

            case ImageEncoderType.PngBitmap:
                PngBitmapEncoder pngEncoder = new PngBitmapEncoder();
                // Set the default/user options...
                bitampEncoder = pngEncoder;
                break;

            case ImageEncoderType.TiffBitmap:
                bitampEncoder = new TiffBitmapEncoder();
                break;

            case ImageEncoderType.WmpBitmap:
                WmpBitmapEncoder wmpEncoder = new WmpBitmapEncoder();
                // Set the default/user options...
                bitampEncoder = wmpEncoder;
                break;
            }

            if (bitampEncoder == null)
            {
                bitampEncoder = new PngBitmapEncoder();
            }

            return(bitampEncoder);
        }
Ejemplo n.º 22
0
        public static void SaveImage(string filename, BitmapSource bitmapSource)
        {
            if (string.IsNullOrEmpty(filename))
            {
                return;
            }
            var           imageType = Path.GetExtension(filename).Trim('.');
            BitmapEncoder encoder;

            switch (imageType.ToLower())
            {
            case "png":
                encoder = new PngBitmapEncoder();
                break;

            case "jpg":
            case "jpeg":
                encoder = new JpegBitmapEncoder();
                break;

            case "bmp":
                encoder = new BmpBitmapEncoder();
                break;

            case "tiff":
                encoder = new TiffBitmapEncoder();
                break;

            case "gif":
                encoder = new GifBitmapEncoder();
                break;

            case "wmb":
                encoder = new WmpBitmapEncoder();
                break;

            default:
                return;
            }

            using (var fileStream = new FileStream(filename, FileMode.Create))
            {
                encoder.Frames.Add(BitmapFrame.Create(bitmapSource));
                encoder.Save(fileStream);
            }
        }
        public void SaveImage(string path, ImageFormat imageFormat)
        {
            BitmapEncoder encoder;

            if (Equals(imageFormat, ImageFormat.Png))
            {
                encoder = new PngBitmapEncoder();
            }
            else if (Equals(imageFormat, ImageFormat.Bmp))
            {
                encoder = new BmpBitmapEncoder();
            }
            else if (Equals(imageFormat, ImageFormat.Gif))
            {
                encoder = new GifBitmapEncoder();
            }
            else if (Equals(imageFormat, ImageFormat.Jpeg))
            {
                encoder = new JpegBitmapEncoder();
            }
            else if (Equals(imageFormat, ImageFormat.Tiff))
            {
                encoder = new TiffBitmapEncoder();
            }
            else if (Equals(imageFormat, ImageFormat.Wmf))
            {
                encoder = new WmpBitmapEncoder();
            }
            else
            {
                encoder = new PngBitmapEncoder();
            }


            var bitmap = new RenderTargetBitmap((int)ActualWidth, (int)ActualHeight, 96, 96, PixelFormats.Pbgra32);

            bitmap.Render(this);
            var frame = BitmapFrame.Create(bitmap);

            encoder.Frames.Add(frame);

            using (var stream = File.Create(path))
            {
                encoder.Save(stream);
            }
        }
Ejemplo n.º 24
0
        public static void Save(this BitmapSource source, Stream stream, BitmapEncoding enc, BitmapMetadata data)
        {
            BitmapEncoder encorder = null;

            switch (enc)
            {
            case BitmapEncoding.Bmp:
                encorder = new BmpBitmapEncoder();
                break;

            case BitmapEncoding.Png:
                encorder = new PngBitmapEncoder();
                break;

            case BitmapEncoding.Jpg:
                encorder = new JpegBitmapEncoder();
                break;

            case BitmapEncoding.Tiff:
                encorder = new TiffBitmapEncoder();
                break;

            case BitmapEncoding.Gif:
                encorder = new GifBitmapEncoder();
                break;

            case BitmapEncoding.Wmp:
                encorder = new WmpBitmapEncoder();
                break;

            case BitmapEncoding.Icon:
                throw new NotSupportedException("The icon format can only load!");

            default:
                throw new NotImplementedException();
            }

            encorder.Frames.Add(BitmapFrame.Create(source));
            if (data != null)
            {
                encorder.Metadata = data;
            }
            encorder.Save(stream);
        }
Ejemplo n.º 25
0
        static AdvancedViewModel()
        {
            var bmpCodec  = new BmpBitmapEncoder().CodecInfo;
            var gifCodec  = new GifBitmapEncoder().CodecInfo;
            var jpegCodec = new JpegBitmapEncoder().CodecInfo;
            var pngCodec  = new PngBitmapEncoder().CodecInfo;
            var tiffCodec = new TiffBitmapEncoder().CodecInfo;
            var wmpCodec  = new WmpBitmapEncoder().CodecInfo;

            _encoderMap = new Dictionary <Guid, string>
            {
                [bmpCodec.ContainerFormat]  = bmpCodec.FriendlyName,
                [gifCodec.ContainerFormat]  = gifCodec.FriendlyName,
                [jpegCodec.ContainerFormat] = jpegCodec.FriendlyName,
                [pngCodec.ContainerFormat]  = pngCodec.FriendlyName,
                [tiffCodec.ContainerFormat] = tiffCodec.FriendlyName,
                [wmpCodec.ContainerFormat]  = wmpCodec.FriendlyName,
            };
        }
Ejemplo n.º 26
0
        private static Dictionary <Guid, string> InitEncoderMap()
        {
            var bmpCodec  = new BmpBitmapEncoder().CodecInfo;
            var gifCodec  = new GifBitmapEncoder().CodecInfo;
            var jpegCodec = new JpegBitmapEncoder().CodecInfo;
            var pngCodec  = new PngBitmapEncoder().CodecInfo;
            var tiffCodec = new TiffBitmapEncoder().CodecInfo;
            var wmpCodec  = new WmpBitmapEncoder().CodecInfo;

            return(new Dictionary <Guid, string>
            {
                [bmpCodec.ContainerFormat] = bmpCodec.FriendlyName,
                [gifCodec.ContainerFormat] = gifCodec.FriendlyName,
                [jpegCodec.ContainerFormat] = jpegCodec.FriendlyName,
                [pngCodec.ContainerFormat] = pngCodec.FriendlyName,
                [tiffCodec.ContainerFormat] = tiffCodec.FriendlyName,
                [wmpCodec.ContainerFormat] = wmpCodec.FriendlyName,
            });
        }
Ejemplo n.º 27
0
        private static BitmapEncoder GetEncoderByFileExt(string fileExt)
        {
            BitmapEncoder encoder;

            switch (fileExt.ToUpper())
            {
            case "GIF":
                encoder = new GifBitmapEncoder();
                break;

            case "JPG":
            case "JPEG":
            case "JPE":
            case "JFIF":
                encoder = new JpegBitmapEncoder();
                break;

            case "PNG":
                encoder = new PngBitmapEncoder();
                break;

            case "TIF":
            case "TIFF":
                encoder = new TiffBitmapEncoder();
                break;

            case "BMP":
            case "DIB":
            case "RLE":
                encoder = new BmpBitmapEncoder();
                break;

            case "WDP":
                encoder = new WmpBitmapEncoder();
                break;

            default:
                encoder = new PngBitmapEncoder();
                break;
            }
            return(encoder);
        }
Ejemplo n.º 28
0
 private void ConvertHDPhoto(PackagePart part)
 {
     using (Stream stream = part.GetStream())
     {
         BitmapDecoder    bitmapDecoder    = BitmapDecoder.Create(stream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
         WmpBitmapEncoder wmpBitmapEncoder = new WmpBitmapEncoder();
         for (int i = 0; i < bitmapDecoder.Frames.Count; i++)
         {
             BitmapFrame item = BitmapFrame.Create(bitmapDecoder.Frames[i]);
             wmpBitmapEncoder.Frames.Add(item);
         }
         using (MemoryStream memoryStream = new MemoryStream())
         {
             wmpBitmapEncoder.Save(memoryStream);
             stream.SetLength(0L);
             memoryStream.Seek(0L, SeekOrigin.Begin);
             memoryStream.CopyTo(stream);
         }
     }
 }
Ejemplo n.º 29
0
        public static void FileToWmp(string inFile, string outFile, float f)
        {
            // Container for bitmap frames
            BitmapDecoder bdFile = null;
            // Read the source file into a FileStream object
            FileStream readFile = File.OpenRead(inFile);

            // Set the BitmapDecoder object from the source file
            bdFile = BitmapDecoder.Create(readFile, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.None);
            // Prepare the output file
            FileStream writeFile = File.OpenWrite(outFile);
            // All the magic done by WmpBitmapEncoder
            WmpBitmapEncoder wbeFile = new WmpBitmapEncoder();

            // Set the quality level to... pretty good
            wbeFile.ImageQualityLevel = f;
            // Add the bitmap frame to the encoder object
            wbeFile.Frames.Add(bdFile.Frames[0]);
            // Write the output file
            wbeFile.Save(writeFile);
            writeFile.Close();
            readFile.Close();
        }
Ejemplo n.º 30
0
        public static BitmapEncoder GetBitmapEncoder(this BitmapFrameFormatMode mode)
        {
            BitmapEncoder encoder = null;

            switch (mode)
            {
            case BitmapFrameFormatMode.Bmp:
                encoder = new BmpBitmapEncoder();
                break;

            case BitmapFrameFormatMode.Jpeg:
                encoder = new JpegBitmapEncoder();
                break;

            case BitmapFrameFormatMode.Gif:
                encoder = new GifBitmapEncoder();
                break;

            case BitmapFrameFormatMode.Png:
                encoder = new PngBitmapEncoder();
                break;

            case BitmapFrameFormatMode.Tiff:
                encoder = new TiffBitmapEncoder();
                break;

            case BitmapFrameFormatMode.Wmp:
                encoder = new WmpBitmapEncoder();
                break;

            default:
                encoder = null;
                break;
            }

            return(encoder);
        }