22 lines
588 B
JavaScript
22 lines
588 B
JavaScript
|
/* eslint-env browser, node */
|
||
|
|
||
|
function isDataURL(str) {
|
||
|
if (str === null) {
|
||
|
return false;
|
||
|
}
|
||
|
const regex = /^\s*data:([a-z]+\/[a-z]+(;[a-z-]+=[a-z-]+)?)?(;base64)?,[a-z0-9!$&',()*+;=\-._~:@/?%\s]*\s*$/i;
|
||
|
return !!str.match(regex);
|
||
|
}
|
||
|
|
||
|
export default function loadImageURL(imageURL, crossOrigin) {
|
||
|
return new Promise((resolve, reject) => {
|
||
|
const image = new Image();
|
||
|
image.onload = () => resolve(image);
|
||
|
image.onerror = reject;
|
||
|
if (isDataURL(imageURL) === false && crossOrigin) {
|
||
|
image.crossOrigin = crossOrigin;
|
||
|
}
|
||
|
image.src = imageURL;
|
||
|
});
|
||
|
}
|