几个C#图片操作公共库

这里包括图片加载、压缩、base64等,大家可以收藏一下,用起来方便。

代码如下:.

public static class ImageFun    {         #region 图片        public static EncoderParameters GetEncoderParas(long picquality)        {            EncoderParameters eps = new EncoderParameters(1);            Encoder ec = Encoder.Quality;            EncoderParameter ep = new EncoderParameter(ec, picquality);            eps.Param[0] = ep;             return eps;        }         public static ImageCodecInfo GetJpegCodecInfo()        {            ImageCodecInfo[] arrayICI = ImageCodecInfo.GetImageEncoders();            ImageCodecInfo jpegICIinfo = null;            for (int x = 0; x < arrayICI.Length; x++)            {                if (arrayICI[x].FormatDescription.Equals("JPEG"))                {                    jpegICIinfo = arrayICI[x];                    break;                }            }             return jpegICIinfo;        }         public static System.Drawing.Image GetImage(string path)        {            FileStream fs = new FileStream(path, FileMode.Open);            Image result = Image.FromStream(fs);             fs.Close();             return result;        }         public static Bitmap GetImageFromBase64(string base64string)        {            byte[] b = Convert.FromBase64String(base64string);            MemoryStream ms = new MemoryStream(b);            Bitmap bitmap = new Bitmap(ms);            return bitmap;        }         public static string GetBase64FromImage(string imagefile)        {            string strbaser64 = "";            try            {                Bitmap bmp = new Bitmap(imagefile);                MemoryStream ms = new MemoryStream();                bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);                byte[] arr = new byte[ms.Length];                ms.Position = 0;                ms.Read(arr, 0, (int)ms.Length);                ms.Close();                strbaser64 = Convert.ToBase64String(arr);            }            catch (Exception)            {                return "";            }            return strbaser64;        }         /// <summary>        /// 按照比例缩小图片        /// </summary>        /// <param name="srcImage">要缩小的图片</param>        /// <param name="percent">缩小比例</param>        /// <returns>缩小后的结果</returns>        public static Bitmap PercentImage(Image srcImage, double percent)        {            // 缩小后的高度            int newH = int.Parse(Math.Round(srcImage.Height * percent).ToString());            // 缩小后的宽度            int newW = int.Parse(Math.Round(srcImage.Width * percent).ToString());            try            {                // 要保存到的图片                Bitmap b = new Bitmap(newW, newH);                Graphics g = Graphics.FromImage(b);                // 插值算法的质量                g.InterpolationMode = InterpolationMode.Default;                g.DrawImage(srcImage, new Rectangle(0, 0, newW, newH), new Rectangle(0, 0, srcImage.Width, srcImage.Height), GraphicsUnit.Pixel);                g.Dispose();                return b;            }            catch (Exception)            {                return null;            }        }         /// <summary>        /// 按照指定大小缩放图片        /// </summary>        /// <param name="srcImage"></param>        /// <param name="iWidth"></param>        /// <param name="iHeight"></param>        /// <returns></returns>        public static Bitmap SizeImage(Image srcImage, int iWidth, int iHeight)        {            try            {                // 要保存到的图片                Bitmap b = new Bitmap(iWidth, iHeight);                Graphics g = Graphics.FromImage(b);                // 插值算法的质量                g.InterpolationMode = InterpolationMode.HighQualityBicubic;                g.DrawImage(srcImage, new Rectangle(0, 0, iWidth, iHeight), new Rectangle(0, 0, srcImage.Width, srcImage.Height), GraphicsUnit.Pixel);                g.Dispose();                return b;            }            catch (Exception)            {                return null;            }        }         /// <summary>        /// jpeg图片压缩        /// </summary>        /// <param name="sFile"></param>        /// <param name="outPath"></param>        /// <param name="flag"></param>        /// <returns></returns>        public static bool GetPicThumbnail(string sFile, string outPath, int flag)        {            if (File.Exists(outPath)) File.Delete(outPath);             System.Drawing.Image iSource = System.Drawing.Image.FromFile(sFile);            ImageFormat tFormat = iSource.RawFormat;            //以下代码为保存图片时,设置压缩质量            EncoderParameters ep = new EncoderParameters();            long[] qy = new long[1];            qy[0] = flag;//设置压缩的比例1-100            EncoderParameter eParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, qy);            ep.Param[0] = eParam;            try            {                ImageCodecInfo[] arrayICI = ImageCodecInfo.GetImageEncoders();                ImageCodecInfo jpegICIinfo = null;                for (int x = 0; x < arrayICI.Length; x++)                {                    if (arrayICI[x].FormatDescription.Equals("JPEG"))                    {                        jpegICIinfo = arrayICI[x];                        break;                    }                }                if (jpegICIinfo != null)                {                    iSource.Save(outPath, jpegICIinfo, ep);//dFile是压缩后的新路径                }                else                {                    iSource.Save(outPath, tFormat);                }                return true;            }            catch            {                return false;            }            finally            {                iSource.Dispose();            }        }        #endregion    }