博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Html5本地图片读取及裁剪
阅读量:6707 次
发布时间:2019-06-25

本文共 1440 字,大约阅读时间需要 4 分钟。

hot3.png

  1. 需要使用到Html5的FileReader,其中image-file是一个input type=file的文件浏览框。如果需要限制读取图片或者照相机:
  1. 当用户选择了图片之后,给input file绑定change事件,自动读取本地文件。
var image_file = document.getElementById("image-file");if(typeof FileReader==='undefined'){    image.innerHTML = "抱歉,你的浏览器不支持 FileReader";    image_file.setAttribute('disabled','disabled');}else{    image_file.addEventListener('change',readFile,false);}
  1. image就是一个id为image的img标签。readFile函数将图片读入,并自动居中裁剪为 宽度自适应屏幕,高度固定为180px的图片。裁剪的过程中需要使用Canvas。
function readFile(){    var file = this.files[0];    if(!/image\/\w+/.test(file.type)){        alert("文件必须为图片!");        return false;    }    var reader = new FileReader();    reader.readAsDataURL(file);    reader.onload = function(e){        var image = document.getElementById("image");         var image=new Image();        image.src = this.result;        var x = 0, y = 0, width = image.width, height = image.height;        if (image.width / $(window).width() > image.height / 180) {            width = $(window).width() * image.height / 180;            x = (image.width - width) / 2;        }        else {            height = 180 * image.width / $(window).width();            y = (image.height - height) / 2;        }         var canvas=$('
')[0], ctx=canvas.getContext('2d'); ctx.drawImage(image,x,y,width,height,0,0,width,height); var data=canvas.toDataURL(); image.innerHTML = '' }}

转载于:https://my.oschina.net/u/1470240/blog/2054671

你可能感兴趣的文章
iSCSI安全之密码认证
查看>>
MySQL运维命令大全
查看>>
MySQL分区表(优化)
查看>>
Linux 系统之扩展表达式 --egrep
查看>>
shell终端中更改提示符颜色
查看>>
NEC开发了深度学习自动优化技术、更易于提高识别精度
查看>>
linux定时任务crond那些事!
查看>>
mysql慢日志分析工具之mysqlsla学习笔记
查看>>
nginx基本配置与参数说明
查看>>
修改防火墙
查看>>
thinkphp中取部分字段用法
查看>>
Linux系统虚拟机管理及redhat7.2的安装
查看>>
handsontable 和 echarts都定义了require方法,初始化时冲突了,怎么办?
查看>>
XP与XP互连
查看>>
jmeter安装
查看>>
LINUX中VSFTP服务器的基本配置
查看>>
Linux运维 第三阶段 (六)web相关概念httpd服务及https加密传输配置
查看>>
mailx及sendEmail的基本用法比较
查看>>
ArcGIS JavaScript在线打印
查看>>
标准滚动条算法
查看>>