crdn 엔티티 수정
parent
bb6f75f7b9
commit
1bff600fd2
@ -1,81 +0,0 @@
|
|||||||
/**
|
|
||||||
* 전달받은 이미지를 base64로 인코딩한다
|
|
||||||
* @param file - 이미지 파일 또는 이미지 URL
|
|
||||||
* @param maxWidth - 인코딩 시의 이미지 max width 사이즈
|
|
||||||
* @returns {Promise<any>}
|
|
||||||
*/
|
|
||||||
var readImage = () => {
|
|
||||||
let image = this.$refs.image.src
|
|
||||||
this.toBlob(image)
|
|
||||||
.then(res => {
|
|
||||||
console.log(res)
|
|
||||||
this.image = {
|
|
||||||
filename: res.name,
|
|
||||||
size: res.size,
|
|
||||||
type: res.type,
|
|
||||||
lastModified: res.lastModified
|
|
||||||
}
|
|
||||||
})
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 이미지 url을 blob 파일로 변환하여 전달한다
|
|
||||||
* @param url
|
|
||||||
* @returns {Promise<any>}
|
|
||||||
*/
|
|
||||||
var toBlob = (url) => {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
this.base64Encode(url)
|
|
||||||
.then(res => {
|
|
||||||
let byteString = atob(res.dataUrl)
|
|
||||||
let ab = new ArrayBuffer(byteString.length)
|
|
||||||
let ia = new Uint8Array(ab)
|
|
||||||
|
|
||||||
for (let i = 0; i < byteString.length; i++) {
|
|
||||||
ia[i] = byteString.charCodeAt(i)
|
|
||||||
}
|
|
||||||
|
|
||||||
// write the array buffer to blob
|
|
||||||
let blob = new Blob([ab], {type: 'image/' + res.type})
|
|
||||||
|
|
||||||
let formData = new FormData()
|
|
||||||
formData.append('file', blob, res.name)
|
|
||||||
resolve(formData.get('file'))
|
|
||||||
})
|
|
||||||
})
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 전달받은 이미지를 base64로 인코딩한다
|
|
||||||
*/
|
|
||||||
var base64Encode = (url) => {
|
|
||||||
const re = new RegExp('.(gif|jpg|jpeg|tiff|png|ico)$', 'i')
|
|
||||||
let name = (/[^(/|\\)]*$/).exec(url)[0]
|
|
||||||
let type = re.test(name) ? re.exec(name)[0].replace('.', '') : 'jpg'
|
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
let image = new Image()
|
|
||||||
|
|
||||||
image.onload = function (event) {
|
|
||||||
let canvas = document.createElement('canvas')
|
|
||||||
// draw canvas
|
|
||||||
canvas.width = image.naturalWidth
|
|
||||||
canvas.height = image.naturalHeight
|
|
||||||
canvas.getContext('2d').drawImage(image, 0, 0)
|
|
||||||
|
|
||||||
let dataUrl = canvas.toDataURL('image/' + type)
|
|
||||||
resolve({
|
|
||||||
name: name,
|
|
||||||
type: type,
|
|
||||||
dataUrl: dataUrl.split(',')[1]
|
|
||||||
})
|
|
||||||
}
|
|
||||||
image.onerror = function () {
|
|
||||||
let msg = `"${file}"을 로딩하는 데 오류가 발생하였습니다. 이미지 파일을 확인해주세요.`
|
|
||||||
alert(msg)
|
|
||||||
console.error(msg)
|
|
||||||
}
|
|
||||||
image.crossOrigin = 'anonymous';
|
|
||||||
image.src = url
|
|
||||||
})
|
|
||||||
}
|
|
Loading…
Reference in New Issue