按比例压缩图片和图片转换成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;
            }
        }  

原文地址:https://www.cnblogs.com/DreakSeeker/p/8143738.html

时间: 2024-11-03 05:33:14

按比例压缩图片和图片转换成BASE64的相关文章

js绝对地址图片转换成base64的方法

//将图片转换成base64 function getBase64Image(url, callback){ var canvas = document.createElement('canvas'), ctx = canvas.getContext('2d'), img = new Image(); //为了解决跨域,可以直接img.crossOrigin=''就能解决图片跨域问题 img.crossOrigin = 'xes'; img.onload = function(){ canvas

html5将图片转换成base64的实例代码

这篇文章给大家介绍了如何利用html5将图片转换成base64,文中通过示例代码介绍的很详细,有需要的朋友们可以参考借鉴. base64编码介绍base64是一种网络上常用的8bit字节代码的编码方式,base64可以用于http环境下传递较长的标识信息,同时可以放在url当中使用,因为base64不惧可读性,所以具有一定的加密功能. 为什么要把图片转换成base64编码?将图片转换成base64代码可以减少http请求,因为图片可以以字符编码的形式直接传递到客户端,而文件形式都需要进行http

JPG图片如何快速转换成CAD图纸呢?

我们在日常办公工作中,常常遇到需要把CAD图纸转换成JPG图片格式的时候.但是有时候也会急需把JPG图片转换成CAD图纸.这时候我们该如何才能快速解决呢?今天小编给大家具体演示一下,不使用转换器软件也可以快速的完成操作. 步骤一:首先,我们先下载安装迅捷CAD编辑器到电脑端,然后开启运行软件. 步骤二:先点击界面左上角的"文件"按钮,之后点击下面的"批处理"进入"批处理"的弹窗页面. 步骤三:在"批处理"界面,点击 "

js如何将选中图片文件转换成Base64字符串?

如何将input type="file"选中的文件转换成Base64的字符串呢? 1.首先了解一下为什么要把图片文件转换成Base64的字符串 在常规的web开发过程中,大部分上传文件都是在web页面端通过表单直接提交,再由服务器端捕获请求来进行处理的.但是在前后端分离趋于一种流行趋势,再加上Android和iOS开发技术日渐成熟, 大部分团队都会选择在服务器端仅提供一套通用的webservice数据接口,而web页面.Android和iOS统一都通过这套数据接口来向服务器发送请求和获

苹果的HEIC格式图片怎么在线转换成JPG格式

苹果的HEIC格式图片怎么在线转换成JPG格式,HEIC格式图片是苹果手机特有的,在其他系统下是不能进行打开查看的,那HEIC图片怎么在windows系统也就是电脑上打开呢,答案是将其转换成jpg格式进行观看,那问题又来了该怎么进行转换的呢,接下来就小编来告诉你转换步骤!第一步:进入电脑上的浏览器,搜索迅捷PDF在线转换器.第二步:进入转换器页面后,在导航栏中选择文档转换,在弹出的下拉框里点击HEIC转JPG.第三步:点进HRIC转JPG后,点击选择文件加入待转换的HEIC文件,也可以直接拖动文

js 将图片文件转换成base64

1.情景展示 在JavaScript中,如何使用图片文件转换成base64? 2.解决方案 /** * 网络图像文件转Base64 * @param img dom对象 */ function getBase64Image(img) { var canvas = document.createElement("canvas"); canvas.width = img.width; canvas.height = img.height; var ctx = canvas.getConte

delphi将图片转换成Base64编码函数

{************************************************************************** 名称: BaseImage 参数: fn: TFilename 返回值: string 功能: 将fn文件转换成Base64编码,返回值为编码 **************************************************************************} function BaseImage(fn: str

node中https请求 | 实现https的请求,获取图片,然后转成base64字节码

get请求 下面实现https的请求,获取图片,然后转成base64字节码 this.checkCodeUrl = 'https://www.test.com/kaptcha.jsp'; var https = require('https'); https.get(this.checkCodeUrl,function(res){ var datas = []; var size = 0; res.on('data', function(data){ datas.push(data); size

JS 如何将“在线图片资源”转换成“base64”

在实现html2canvas截图的功能时,发现不支持"图片跨域",这可伤脑筋了: 偶然发现如果将"在线图片资源"转换成base64后,用base64渲染,这样完美解决问题: 因为图片时跨域的,所以我们在转换过程中需要加一段代码,用来支持跨域: image.crossOrigin = "*"; 完整代码如下: function getBase64Image(img) { var canvas = document.createElement(&qu