From c43adc8a374aaa057a090e99161afba9bbc38286 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Wed, 18 Nov 2020 14:57:04 +0100 Subject: preloading curtain images --- animism-align/frontend/app/utils/index.js | 79 ------------------------------- 1 file changed, 79 deletions(-) (limited to 'animism-align/frontend/app/utils/index.js') diff --git a/animism-align/frontend/app/utils/index.js b/animism-align/frontend/app/utils/index.js index d6c1a16..ddbfb7e 100644 --- a/animism-align/frontend/app/utils/index.js +++ b/animism-align/frontend/app/utils/index.js @@ -114,85 +114,6 @@ export const sha256_tree = (sha256, branch_size=2, tree_depth=2) => { return tree } -export const preloadImage = (url, anonymous=false) => ( - new Promise((resolve, reject) => { - if (typeof url === 'object' && url instanceof Image) { - return resolve(url) - } - const image = new Image() - let loaded = false - image.onload = () => { - if (loaded) return - loaded = true - image.onload = null - image.onerror = null - resolve(image) - } - image.onerror = () => { - if (loaded) return - image.onload = null - image.onerror = null - resolve(image) - } - // console.log(img.src) - if (anonymous) { - image.crossOrigin = 'anonymous' - } - image.src = url - if (image.complete) { - image.onload() - } - }) -) - -export const cropImage = (url, crop, maxSide) => { - return new Promise((resolve, reject) => { - preloadImage(url, true) - .then(image => { - let { x, y, w, h } = crop - x = parseFloat(x) - y = parseFloat(y) - w = parseFloat(w) - h = parseFloat(h) - const canvas = document.createElement('canvas') - const ctx = canvas.getContext('2d') - const { naturalWidth, naturalHeight } = image - - let width, height - let cropWidth = naturalWidth * w - let cropHeight = naturalHeight * h - - if (maxSide > 0) { - if (cropWidth > cropHeight) { - width = Math.min(maxSide, cropWidth) - height = cropHeight * width / cropWidth - } else { - height = Math.min(maxSide, cropHeight) - width = cropWidth * height / cropHeight - } - } else { - width = cropWidth - height = cropHeight - } - - canvas.width = width - canvas.height = height - - ctx.drawImage( - image, - Math.round(x * naturalWidth), - Math.round(y * naturalHeight), - Math.round(w * naturalWidth), - Math.round(h * naturalHeight), - 0, 0, canvas.width, canvas.height - ) - // console.log(x, y, w, h) - // console.log(naturalWidth, naturalHeight) - // console.log(width, height) - resolve(canvas) - }) - }) -} export const urlSearchParamsToDict = search => { const params = new URLSearchParams(search) const dict = {} -- cgit v1.2.3-70-g09d2