2020-01-10 vue-cropper图片裁剪
需求:对本地上传、远程FTP上传和视频截取三种方式的获得图片放入裁剪区进行裁剪
无论哪种方式,都需要得到裁剪图片的文件file,然后通过window.URL.createObjectURL
方法取得图片url,最后通过vue-cropper组件裁剪图片产出图片信息
获取图片文件file
1、本地上传通过组件el-upload(element-ui)中的钩子函数获得上传图片的file
2、通过其它方式获得图片url,首先要把url转为图片file
图片url转换为file的方法:包括跨域
export const imgConvert = {
/**
* 图片url获取base64数据(如果是跨域图片需要设置允许跨域)
* @param img
* @param width
* @param height
* @returns {
{dataURL: string, type: string}}
*/
getBase64Image(img, width, height) {
let demoCanvas = document.createElement('canvas')
demoCanvas.width = img.width;
demoCanvas.height = img.height;
const ctx = demoCanvas.getContext("2d")
ctx.drawImage(img, 0, 0, width, height);
const ext = img.src.substring(img.src.lastIndexOf(".") + 1).toLowerCase();
const dataURL = demoCanvas.toDataURL("image/" + ext);
return {
dataURL: dataURL,
type: "image/" + ext
};
},
/**
* 图片base64 转为blob
* @param base64
* @returns {Blob}
*/
convertBase64UrlToBlob(base64) {
const urlData = base64.dataURL;
const type = base64.type;
const bytes = window.