- A+
所属分类:JavaScript
基本过程
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');
- }