做在线聊天工具时从网上找了一些关于图片处理的代码,现把代码整理下发出来以备以后查询。废话不多说,直接上代码

// 粘贴图片(返回文件数据)
function pasteImage(e) {
  var imgFile = null,
    pasteEvent = e.originalEvent,
    items = (pasteEvent.clipboardData && pasteEvent.clipboardData.items) ? pasteEvent.clipboardData.items : [];
 
  for (var i = 0; i < items.length; i++) {
    var item = items[i];
    if (~item.type.indexOf("image")) {
      imgFile = item.getAsFile();
      break;
    }
  }
 
  e.preventDefault();
  return imgFile;
}
 
// 把文件数据转换为base64格式(结果将以参数的形式传给回调函数)
function fileToBase64(file, callback) {
  if (!window.FileReader) {
    alert("您的浏览器不支持数据转换,如需该功能请升级您的浏览器!");
    return;
  }
 
  var reader = new FileReader();
  reader.onload = function (event) {
    if (callback && typeof callback == "function") callback(event.target.result);
  }
  reader.readAsDataURL(file);
}
 
// 将base64数据转换为文件流
function dataURLtoFile(dataurl) {
  var arr = dataurl.split(','),
    mime = arr[0].match(/:(.*?);/)[1],
    bstr = atob(arr[1]),
    n = bstr.length,
    u8arr = new Uint8Array(n),
    tempArr = mime.split('/'),
    filename = tempArr[1] ? (tempArr[0] + '.' + tempArr[1]) : (tempArr[0] + '.png');
 
  while (n--) {
     u8arr[n] = bstr.charCodeAt(n);
  }
 
  var theBlob = new Blob([u8arr], { type: mime });
  theBlob.lastModifiedDate = new Date();
  theBlob.name = filename;
  return theBlob;
}