• 按比例压缩图片和图片转换成BASE64


    通常会需要将突破转换为字符串的操作,贴此详例,仅供参考和积累

       #region 按比例压缩图片和图片转换成BASE64
            /// <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>
            /// 将图片转换成BASE64
            /// </summary>
            /// <param name="imagefile"></param>
            /// <returns></returns>
            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);
                    bmp.Dispose();
                }
                catch (Exception)
                {
                    //throw new Exception("Something wrong during convert!");
                }
                return strbaser64;
            }
            #endregion
    
    
            //将base64字符转换为图片保存
            /// <summary>
            /// 
            /// </summary>
            /// <param name="strbase64">base64字符串</param>
            /// <param name="desPathUrl">图片存放路径</param>
           /// <returns></returns>
            public  static bool Base64StringToImage(string strbase64,string desPathUrl)
            {
                try
                {
                    string imgUrl = string.Empty;
                    byte[] arr = Convert.FromBase64String(strbase64);
                    MemoryStream ms = new MemoryStream(arr);
                    Bitmap bmp = new Bitmap(ms);
    
                    bmp.Save(desPathUrl, System.Drawing.Imaging.ImageFormat.Jpeg);
                    ms.Close();
                    return true;
                }
                catch (Exception ex)
                {
                    WriteLog("操作:将base64转换为图片并存储,错误原因:"+ex.Message);
                    return false;
                }
            }  
  • 相关阅读:
    POJ3259 Wormholes
    leetCode-Plus One
    leetCode-Pascal's Triangle
    leetCode-Longest Continuous Increasing Subsequence
    leetCode-Missing Number
    leetCode-Maximum Product of Three Numbers
    leetCode-Image Smoother
    leetCode-Contains Duplicate
    机器学习实战笔记-使用Apriori算法进行关联分析
    leetCode-Degree of an Array
  • 原文地址:https://www.cnblogs.com/DreakSeeker/p/8143738.html
Copyright © 2020-2023  润新知