LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

几个C#图片操作公共库

admin
2023年8月22日 15:10 本文热度 447

这里包括图片加载、压缩、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    }

出处:https://www.cnblogs.com/jhlong/p/7514040.html



该文章在 2023/8/22 15:10:44 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved