从上一篇文章中,知道了如何获取本地图片路径并显示在界面上。
1,将获取到的文件转为base64位
2,将base64图片格式转为图片文件保存到服务器上,或直接保存base64格式(这个看自己的需求咯)
js:
function appendFile(path){//将获取到的文件转为base64位,传入图片路径
var img = new Image();
img.src = path; // 传过来的图片路径在这里用。
img.onload = function () {
var that = this;
//生成比例
var w = that.width,
h = that.height,
scale = w / h;
w = 480 || w; //480 现在手机随便拍张照片都几M,所以压缩一下! 你想压缩到多大,改这里
h = w / scale;
//生成canvas
var canvas = document.createElement('canvas');//创建画布绘画图片
var ctx = canvas.getContext('2d');
$(canvas).attr({width : w, height : h});
ctx.drawImage(that, 0, 0, w, h);
var base64 = canvas.toDataURL('image/jpeg', 1 || 0.8 ); //1最清晰,越低越模糊。有一点不清楚这里明明设置的是jpeg。弹出 base64 开头的一段 data:image/png;却是png。
//base64 ------------>这个就是图片base64格式了
}
}
java:
BASE64Decoder decoder = new BASE64Decoder();
FileOutputStream write = new FileOutputStream(new File("C:/xx/test2.png"));//文件保存地址
byte[] decoderBytes = decoder.decodeBuffer(urlbase64.toString());//转为字节
write.write(decoderBytes);//用IO写出来就行啦