H5图片选取器

作者: LZF_home | 来源:发表于2017-06-28 22:12 被阅读60次

最近的项目都有拍照上传的功能,所以把这个功能单独抽出来总结积累一下,以便以后复用。
功能:图片选取,滑动预览,删除,异步上传(压缩)
工具Swiper插件
代码https://github.com/jackLeong/imagePicker

图片压缩上传代码:

function send(){
var url_send = "http://......";
var scale = 3; //缩放比例
$('.forIndex img').each(function(index,ele){
        var canvas = document.createElement("canvas");
        var image = this;
         var w = image.naturalWidth;
         var h = image.naturalHeight
        canvas.width = w/scale;
        canvas.height = h/scale; 
        // 坐标(0,0) 表示从此处开始绘制,相当于偏移。 
        canvas.getContext("2d").drawImage(image,0,0,w,h,0,0,w/scale,h/scale); 
        var dataURL = canvas.toDataURL("image/png");
        var blob = convertBase64UrlToBlob(dataURL);
        var file = new File([blob],(new Date()).valueOf()+'.png',{type:"image/png"});
        var formData = new FormData();
        formData.append('imgData',file);
        
        $.ajax({
          url: url_send,
          type: 'POST',
          data: formData,
          cache: false,
          async:true,
          processData: false,
         contentType: false,
          success: function (data) {
          },
          error: function () {
          }
        });
    });
}

function convertBase64UrlToBlob(urlData){
    var decoded=window.atob(urlData.split(',')[1]);   //去掉Data URL的头部信息,window.atob解码base64,返回字符串(unicode字符串)对象
    debugger;
    console.log(decoded);
    var typedArr = new ArrayBuffer(decoded.length);   //开辟字节数大小为decoded.length的类型化数组,相当一片内存空间
    var uint8Arr = new Uint8Array(typedArr);          //创建一个指向typedArr的Uint8视图
    for(var i=0;i<decoded.length;i++){
        uint8Arr[i] = decoded.charCodeAt(i);          //charCodeAt返回unicode字符编码, uint8Arr,typeArr指向同一地址,
    }
    return new Blob( [uint8Arr] , {type : 'image/png'});
}

效果

01.png

相关文章

  • H5图片选取器

    最近的项目都有拍照上传的功能,所以把这个功能单独抽出来总结积累一下,以便以后复用。功能:图片选取,滑动预览,删除,...

  • 图片选取器

    源码下载地址:https://github.com/MaShengKui/ImageSelector 喜欢的朋友记...

  • ios图片选取器

    WKCPhotoPicker Some base on photo 需在info.plist配置相机和相册权限 N...

  • 图片选取器UIImagePickerController

    迭代2:添加可以使用摄像头照一张照片以显示出来的功能,两个不同的Button通过使用tag属性,传入toImage...

  • 2022-05-21

    H5获取系统相册照片方案 1.方法一:H5使用input标签获取 H5 需要选取系统相册的一个图片,可以用 H5 ...

  • iOS多张图片选取器

    好久没有更新简书了,现在没有那么忙了,更新一个简书吧~ 之前项目催的比较紧急(其实也就那么一回事),好多功能就以最...

  • Android动画 - 收藏集 - 掘金

    Matisse - 知乎开源的 Android 图片选择器 - Android - 掘金很多 App 都有选取图片...

  • iOS-UIImagePickerController图片选取器

    UIImagePickerController用于管理可自定义的,系统支持的用于获取设备上图片和视频的用户界面。同...

  • 基于html5+node.js 图片上传、预览实现

    1、检测浏览器是否支持 2、图片选取 3、图片预览 4、图片上传 图片上传分为前端和服务端 前端实现原理:XMLH...

  • android从系统相册选取图片并剪切

    1.选取图片,不剪切 2.选取图片并剪切 3.获取选择的图片路径

网友评论

    本文标题:H5图片选取器

    本文链接:https://www.haomeiwen.com/subject/bwoucxtx.html