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