Example #1
0
        private static MemoryStream JpegDecode2(MemoryStream jpegData)
        {
            var byteStream = new MemoryStream();
            var i          = new BitMiracle.LibJpeg.JpegImage(jpegData);

            i.WriteBitmap(byteStream);
            //using SixLabors.ImageSharp.Image image = SixLabors.ImageSharp.Image.Load(jpegData, new JpegDecoder());
            // image.SaveAsBmp(byteStream);
            return(byteStream);
        }
Example #2
0
        private string compressjpg(string path, int compress)
        {
            try
            {
                string dir           = Path.GetDirectoryName(path);
                string filenamenoext = Path.GetFileNameWithoutExtension(path);
                string ext           = Path.GetExtension(path).ToLower();
                string desPath       = dir + "\\" + filenamenoext + "-min" + ext;
                BitMiracle.LibJpeg.JpegImage             jpeg = new BitMiracle.LibJpeg.JpegImage(path);
                BitMiracle.LibJpeg.CompressionParameters p    = new BitMiracle.LibJpeg.CompressionParameters();
                p.Quality           = compress;
                p.SmoothingFactor   = 50;
                p.SimpleProgressive = true;
                using (FileStream output = new FileStream(desPath, FileMode.Create)) {
                    jpeg.WriteJpeg(output, p);
                }



                //System.Drawing.Image b = System.Drawing.Image.FromFile(path);
                //System.Drawing.Imaging.ImageFlags flags = (System.Drawing.Imaging.ImageFlags) Enum.Parse( typeof( System.Drawing.Imaging.ImageFlags ), b.Flags.ToString());


                //EncoderParameters encoder = new EncoderParameters(1);
                //encoder.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, compress);
                //ImageCodecInfo imagecoder = GetEncoderInfo("image/jpeg");
                //System.Drawing.Image bitm = System.Drawing.Image.FromFile(path);
                //  string dir = Path.GetDirectoryName(path);
                //  string filenamenoext = Path.GetFileNameWithoutExtension(path);
                //string ext = Path.GetExtension(path).ToLower();
                // string desPath = dir+"\\"+filenamenoext+"-min"+ ext;

                // bitm.Save(desPath, imagecoder, encoder);

                // bitm.Dispose();
                // bitm = null;

                return(desPath);
            }
            catch (Exception ex)
            {
                return("");
            }
        }
Example #3
0
        public Tuple <byte[], SaveResult> GenerateJPEGData()
        {
            var bmp   = GetSelectedImage();
            var img   = new BitMiracle.LibJpeg.JpegImage(bmp);
            var parms = new BitMiracle.LibJpeg.CompressionParameters();

            byte[] data = null;

            int q       = 100;
            int maxSize = Properties.Settings.Default.MaxFileSize;

            for (; q >= 75 && data == null; q--)
            {
                parms.Quality = q;
                using (var strm = new MemoryStream())
                {
                    img.WriteJpeg(strm, parms);
                    if (strm.Length < maxSize)
                    {
                        data = strm.ToArray();
                        break;
                    }
                }
            }

            if (data == null)
            {
                return(Tuple.Create(new byte[0], new SaveResult {
                    Success = false
                }));
            }

            return(Tuple.Create(
                       data,
                       new SaveResult
            {
                Success = true,
                Dimensions = bmp.Size,
                Quality = q,
                FileSize = data.Length
            }
                       ));
        }
        public static ImageFactory Optimize(this ImageFactory imageFactory, Stream outStream, Int32 quality = 75)
        {
            using (MemoryStream ms = new MemoryStream())
            {
                imageFactory.Save(ms);

                ms.Seek(0, SeekOrigin.Begin);

                using (BitMiracle.LibJpeg.JpegImage image = new BitMiracle.LibJpeg.JpegImage(ms))
                {
                    image.WriteJpeg(
                        outStream,
                        new BitMiracle.LibJpeg.CompressionParameters
                    {
                        Quality           = quality,
                        SimpleProgressive = true,
                        SmoothingFactor   = 0
                    });
                }
            }

            return(imageFactory);
        }
Example #5
0
        private void btn_select_Click(object sender, EventArgs e)
        {
            string INIT_DIR = @"C:\";

            if (File.Exists(Statics.last_opend_directory) == true)
            {
                INIT_DIR = Statics.last_opend_directory;
            }

            OpenFileDialog dlg = new OpenFileDialog();
            dlg.InitialDirectory = INIT_DIR;
            dlg.Title = "Open Image";
            dlg.Filter = "jpg files (*.jpg)|*.jpg";

            if (dlg.ShowDialog() == DialogResult.OK)
            {
                Statics.last_opend_directory = dlg.FileName;

                try
                {
                    FileInfo fi = new FileInfo(dlg.FileName);

                    if (fi.Length >= Statics.image_size_limitation * 1000)
                    {
                        MBOX MB = new MBOX(" حجم تصوير انتخاب شده باید زیر " + Statics.image_size_limitation + " کیلو بایت باشد ", "ذخيره عکس...", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    BitMiracle.LibJpeg.JpegImage ji = new BitMiracle.LibJpeg.JpegImage(dlg.FileName);
                    MemoryStream MS2 = new MemoryStream();
                    ji.WriteJpeg(MS2);
                    Image X = Image.FromStream(MS2);
                    byte[] array = MS2.ToArray();
                    pic_product.Image = X;
                    lbl_info.Text = (float)array.Length / 1000 + " KB";

                }
                catch (System.Exception ex)
                {
                    ex = new System.Exception();

                    MBOX MB = new MBOX("مشکل در بارگذاری تصویر", "خطا...", MessageBoxButtons.OK, MessageBoxIcon.Error);

                }
            }
        }
Example #6
0
        public Tuple<byte[], SaveResult> GenerateJPEGData()
        {
            var bmp = GetSelectedImage();
            var img = new BitMiracle.LibJpeg.JpegImage(bmp);
            var parms = new BitMiracle.LibJpeg.CompressionParameters();
            byte[] data = null;

            int q = 100;
            int maxSize = Properties.Settings.Default.MaxFileSize;
            for (; q >= 75 && data == null; q--)
            {
                parms.Quality = q;
                using (var strm = new MemoryStream())
                {
                    img.WriteJpeg(strm, parms);
                    if (strm.Length < maxSize)
                    {
                        data = strm.ToArray();
                        break;
                    }
                }
            }

            if (data == null)
                return Tuple.Create(new byte[0], new SaveResult { Success = false });

            return Tuple.Create(
                    data,
                    new SaveResult
                    {
                        Success = true,
                        Dimensions = bmp.Size,
                        Quality = q,
                        FileSize = data.Length
                    }
                );
        }