C#保存Base64格式图片
.前端页面代码
/**
* 通过图片本地路径获取图片真实大小,并进行压缩
*/
function getLocalRealSize(path, callback) {
var img = new Image();
var tempimg = new Image();
img.src = path;
img.onload = function() {
var height = img.naturalHeight;
var width = img.naturalWidth;
img.width = img.naturalWidth;
img.height = img.naturalHeight;
//压缩图片
var canvas = compressImage(img);
tempimg = canvas.toDataURL('image/jpeg'); callback(tempimg);
}
};
/**
* 压缩图片
*/
function compressImage(image) {
var canvas = document.createElement("canvas");
var mwidth = image.width;
var mheight = image.height;
var scale = ;
var i = ;
while (true) {
if (mwidth >> i <= && mheight >> i <= ) {
scale = Math.pow(0.5, i);
break;
}
i += ;
}
canvas.width = mwidth * scale;
canvas.height = mheight * scale;
canvas.getContext("2d").drawImage(image, , , mwidth * scale, mheight * scale);
return canvas;
}
//主页面 车主首页 跳转
document.getElementById("driverindex").addEventListener("tap", function() {
//获取img对象
var OwerImg = document.getElementById("owner-photo-img");
var OwerCardImg = document.getElementById("owner-cardphoto-img");
var OwerLicenceImg = document.getElementById("owner-driver1-img");
var OwerDrivingLicenceImg = document.getElementById("owner-driver2-img");
var CarImg = document.getElementById("owner-car-img");
var AssuranceImg = document.getElementById("owner-sure-img"); var oArray=source.split("|");
var totalCount=imgCount+oArray.length-;
if(totalCount<){
mui.toast("请上传完整信息");
return false;
}
uploadImg();
});
});
// 上传文件
var uploadImg = function() {
var server = imgUrl+'/clientapi/driver/ApplayCertification';
//outSet("开始上传:")
var wt = plus.nativeUI.showWaiting();
var task = plus.uploader.createUpload(server, {
method: "POST",
blocksize: ,
priority:
},
function(t, status) { //上传完成
if (t.state == && status == ) {
wt.close();
//outLine("上传成功:" + t.responseText);
//上传成功,跳转到车主首页
mui.toast('上传成功');
mui.fire(mycarPage, "pageflowrefresh" );
plus.webview.currentWebview().close();
mui.redirect('myaccount-mycar', '../myaccount/mycar.html');
} else {
//outLine("上传失败:" + status);
wt.close();
mui.toast('上传失败');
}
}
);
task.addData("token", UserInfo.token());
task.addData("source", source);
task.start();
}
.C#后台代码
//将base64编码的字符串转为图片并保存
protected string SaveBase64Image(string source, string path, int userID)
{
try
{
var now = DateTime.Now;
string filePath = path + now.ToString("yyyy-MM-dd") + "/" + userID.ToString() + "/";
string fileName = now.ToString("yyyyMMddhhmmssffff") + ".jpg";
Log.Debug("filePath:" + filePath + fileName);
string strbase64 = source.Substring(source.IndexOf(',') + );
strbase64 = strbase64.Trim('\0');
//Log.Debug("strbase64:" + strbase64);
byte[] arr = Convert.FromBase64String(strbase64);
using (MemoryStream ms = new MemoryStream(arr))
{
Log.Debug("进入了MemoryStream");
Bitmap bmp = new Bitmap(ms);
if (!Directory.Exists(Server.MapPath(filePath)))
{
Log.Debug("没有Directory");
Directory.CreateDirectory(Server.MapPath(filePath));
}
//if (!Directory.Exists(filePath))
// Log.Debug("没有Directory");
//Directory.CreateDirectory(filePath);
//新建第二个bitmap类型的bmp2变量。
Bitmap bmp2 = new Bitmap(bmp, bmp.Width, bmp.Height);
//将第一个bmp拷贝到bmp2中
Graphics draw = Graphics.FromImage(bmp2);
draw.DrawImage(bmp, , );
draw.Dispose();
Log.Debug("保存图片前");
bmp2.Save(Server.MapPath(filePath + fileName), System.Drawing.Imaging.ImageFormat.Jpeg);
Log.Debug("保存图片后");
//bmp.Save("test.bmp", ImageFormat.Bmp);
//bmp.Save("test.gif", ImageFormat.Gif);
//bmp.Save("test.png", ImageFormat.Png);
ms.Close();
return filePath + fileName;
}
}
catch (Exception ex)
{
return null;
}
}
C#保存Base64格式图片的更多相关文章
- uniapp微信小程序保存base64格式图片的方法
uniapp保存base64格式图片的方法首先第一要先获取用户的权限 saveAlbum(){//获取权限保存相册 uni.getSetting({//获取用户的当前设置 success:(res)= ...
- laravel 存储base64格式图片
laravel 存储base64格式图片 一.总结 一句话总结: 用正则替换base64图片编码的编码头即可 存储图片的话,用laravel可以用Storage的put方法,原生php可以用file_ ...
- 微信小程序 base64格式图片的显示及保存
当我们拿到如下base64格式的图片(如下图)时, base64格式的图片数据: 如何显示 ? 使用image标签,src属性添加data:image/png;base64, (注意:若imgData ...
- C# WEB.API 接收并解析保存base64格式的图片
using System; using System.Collections.Generic; using System.Drawing; using System.IO; using System. ...
- js获取base64格式图片预览上传并用php保存到本地服务器指定文件夹
html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- 保存BASE64编码图片
1.前端上传用户图片时,一些K数较小图片,头像图标等 .以bass64编码后的字符串传到服务器. 2.服务器接收并保留到本地. // 页面上点击保存 $.post('/imgupload/save', ...
- base64格式图片转换为FormData对象进行上传
原理:理由ArrayBuffer.Blob和FormData var base64String = /*base64图片串*/; //这里对base64串进行操作,去掉url头,并转换为byte va ...
- dedecms不能保存jpeg格式图片的解决方法
方法如下: 进入织梦的后台管理目录,默认是dede文件夹,找到/inc/inc_archives_functions.php文件. 在文件里查找gif|jpg|,我找到了4个, 在它们后面加jpeg的 ...
- 微信支付特约商户进件中base64格式图片上传
微信图片上传接口地址:https://api.mch.weixin.qq.com/v3/merchant/media/upload 1.上传方法 1 using HttpHandlerDemo; 2 ...
随机推荐
- Unity2D多分辨率屏幕适配方案(转载)
一下内容转自:http://imgtec.eetrend.com/forum/3992 此文将阐述一种简单有效的Unity2D多分辨率屏幕适配方案,该方案适用于基于原生开发的Unity2D游戏,即没有 ...
- php 二维数组(没啥技术含量)
<?php $cars = array( array('benchi',20,18), array('baoma',30,21), array('aodi',23,9) ); echo $car ...
- UML精粹4 - 对象图,包图,部署图,用例
对象图object diagram 对象图是某个时间点上的对象在系统中的快照,也经常被称为实例图.一般在展示组合对象结构时比较有用.例如 组合结构的类图 一个时刻的对象图 包图package diag ...
- QT学习之路--深入了解信号槽
槽函数可以和一个信号相连接,当这个信号发生时,它可以被自动调用.connect()语句的原型类似于:connect(sender, SIGNAL(signal), receiver, SLOT(slo ...
- C++使用VARIANT实现二维数组的操作
C++使用VARIANT实现二维数组的操作 VARIANT变量是COM组件之间互相通信的重要的参数变量之一,它可以容纳多种不同的类型,如short.long.double等,包括各类指针和数组.组件之 ...
- FIO使用指南
前言 fio是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,包括:sync,mmap, libaio, posixaio, SG v3, splice, nul ...
- 深入理解JS异步编程二(分布式事件)
PubSub模式 从原生的js角度,我们要监听某事件的方法就是利用addEventListener方法,但是当我们的页面趋于复杂,比如要向某个元素添加多个处理事件,那么就要用一个封装函数汇集多个处理函 ...
- 为什么V8引擎这么快?
目录(?)[-] 高速引擎的需求 语言本身的问题 JIT编译 JIT Compile 垃圾回收管理 内嵌缓存inline cache 隐藏类 内嵌缓存Inline Cache 机器语言的特性 附录熟悉 ...
- VC++ CButton::SetCheck 的使用方法
CButton::SetCheck void SetCheck(int nCheck); 参数 nCheck 指定检查状态. 此参数可以是下列值之一: 值 ...
- 使用网易ubuntu镜像加速软件包安装
用vi工具编辑文件 sudo vi /etc/apt/sources.list 以trusty(14.04)为例,插入下面内容到文件的最前面: deb http://mirrors.163.com/u ...