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); }
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(""); } }
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); }
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); } } }
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 } ); }