image util to handle image file, canvas/image/blob/file translate
copy dist imageFileConvert.umd.js for usage
npm i image-file-convert
import ImageFileConvert from 'image-file-convert'
<input type="file" accept="image/*" onchange="fileChange(event)">
<script src="../dist/imageFileConvert.umd.js"></script>
<script>
function fileChange(ev) {
let file = ev.target.files[0];
ImageFileConvert.getImageFileData(file, { width: 600, height: 800, cover: false }).then(({ blob, base64 }) => {
let img = ImageFileConvert.blobToImage(blob);
img.style.width = '300px';
console.log(blob, base64.length)
document.body.appendChild(img);
});
}
</script>
get image file input data, can compress size with option with and height
参数 | 类型 | 说明 |
---|---|---|
file | file type | 文件类型 |
option | object | 配置项 |
width | 宽度 | |
height | 高度 | |
cover | 是否覆盖整个区域,默认false |
function fileChange(ev) {
let file = ev.target.files[0];
ImageFileConvert.getImageFileData(file, { width: 300, height: 400, cover: true }).then(blob => {
let img = ImageFileConvert.blobToImage(blob);
document.body.appendChild(img);
})
}
blob translate to image, use for ImageFileData() result
参数 | 类型 | 说明 |
---|---|---|
blob | blob | 二进制文件 |
let img = ImageFileConvert.blobToImage(blob);
file translate to canvas and image, get canvas and image
参数 | 类型 | 说明 |
---|---|---|
file | file type | 文件类型 |
option | object | 配置项 |
width | 宽度 | |
height | 高度 | |
cover | 是否覆盖整个区域,默认false |
ImageFileConvert.fileToCanvas(file, { width: 400, height: 400 }).then(({ canvas, image }) => {
document.body.appendChild(canvas);
})
file translate to image
参数 | 类型 | 说明 |
---|---|---|
file | file type | 文件类型 |
ImageFileConvert.fileToImage(file).then(img => {
document.body.appendChild(img);
})
image translate to canvas
参数 | 类型 | 说明 |
---|---|---|
img | image element | 图片 |
let canvas = ImageFileConvert.imageToCanvas(img);
canvas tranlate to image, return promise
参数 | 类型 | 说明 |
---|---|---|
canvas | canvas | canvas |
ImageFileConvert.canvasToImage(cvs, 'image/png').then(canvas => {
document.body.append(canvas);
})
canvas translate to file
let file = ImageFileConvert.canvasToFile(cvs);
canvas to base64
let base64 = ImageFileConvert.canvasToBase64(cvs);
image translate to base64
let base64 = ImageFileConvert.imageToBase64(img);
rotate image by canvas and return canvas
参数 | 类型 | 说明 |
---|---|---|
canvas | canvas | 需要绘制的canvs |
image | img | img元素 |
degree | int | 角度 |
ImageFileConvert.rotate(cvs, img, degree);