基本过程

1) 调用 FileReader 的 reader.readAsDataURL(img); 方法, 在其onload事件中, 将用户选择的图片读入 Image对象.

2) 在image对象的 onload 事件中, 通过 canvas 的 canvas.getContext('2d') 的 drawImage 方法, 将Image 改变大小绘制到canvas上.

3) 通过 canvas.toDataURL("image/jpeg", 0.1); 方法, 将图片变成base64字符串, 传入服务端.

     var vueImg = new Vue({
el: "#divCarImages",
data: { model: { carId: '@carId', imageTitle:'',img64:'' }, images: [] },
methods: {
imageHandle: function () {
var fup = $("#fileImg")[0]; var img = fup.files[0]; var image = new Image();
var canvas = $("#canvas")[0];//document.createElement("canvas");
var ctx = canvas.getContext('2d'); image.onload = function () {
var w = image.naturalWidth,
h = image.naturalHeight; var toSize = 400;
canvas.width = toSize;
canvas.height = toSize; var w2 = toSize, h2 = toSize;
if (w > h) {
h2 = h / w * toSize;
} else {
w2 = w / h * toSize;
} ctx.drawImage(image, 0, 0, w, h, 0, 0, w2, h2); } // 判断是否图片
if (!img) {
return;
} // 判断图片格式
if (!(img.type.indexOf('image') == 0 && img.type && /\.(?:jpg|png|gif)$/.test(img.name))) {
alert('图片只能是jpg,gif,png');
return;
} var reader = new FileReader(); reader.onload = function (e) { // reader onload start
var url = reader.result;
image.src = url; } // reader onload end reader.readAsDataURL(img);
} }
});
     function uploadImg() {
var canvas = $("#canvas")[0];
vueImg.model.img64 = canvas.toDataURL("image/jpeg", 0.1);
//$("#testMsg").html(imgData.length); // ajax 上传图片
$.post("@Url.Content("~/AliOss/SaveCarImage")", vueImg.model , function (ret) { parseAjaxData(data, function (model) {
console.log(model.Path);
alert(model.Path);
$('#showimg').html('<img src="' + model.Path + '">');
})
}, 'json');
}

原文地址: http://www.cnblogs.com/ybst/p/6033199.html

最新文章

  1. 关于js解析的一点小问题
  2. 《对象及DOM知识点及其应用1》
  3. handsontable组件和jqwidgets(jqxdragdrop组件)在一个页面产生调整宽高bug
  4. [No00002F]3步,教你如何分解需求
  5. mongdb查询与排序
  6. 爱你.一万年&gt;&gt;数据库基础
  7. php的socket通信(二)
  8. 如何在Mininet中修改host的IP地址
  9. C++ Name Mangling 为什么不编码返回值参数
  10. js 关于字母和数字之间的转换
  11. java多态 -- 猫狗案列
  12. ASP.NET 会话状态的模式
  13. Framework启动过程浅析
  14. 【Python3学习】Python环境搭建
  15. [20180822]session_cached_cursors与子游标堆0.txt
  16. C#获取一个数组中的最大值、最小值、平均值
  17. OpenGL——旋转的六边形(动画)
  18. UNDERSTANDING ITWEEN CALLBACKS
  19. df -h命令卡死解决办法
  20. 统一日志监控系统 springboot websocket 简单版 王代军-作品

热门文章

  1. 微信小程序 缓存说明
  2. Dmidecode
  3. C# 如何判断系统是32位还是64位
  4. 定位frame中的元素
  5. poj3159
  6. Partial Sum
  7. .NET调用JAVA的WebService方法
  8. Xamarin.Forms学习之XAML命名空间
  9. flask信号
  10. ubuntu下MySQL无法启动Couldn&#39;t find MySQL server (/usr/bin/mysqld_safe)”