diff --git a/src/components/widgets/background/Background.jsx b/src/components/widgets/background/Background.jsx index ed70ef5a..28e3eeb9 100644 --- a/src/components/widgets/background/Background.jsx +++ b/src/components/widgets/background/Background.jsx @@ -91,10 +91,7 @@ export default class Background extends PureComponent { const imageData = ctx.createImageData(32, 32); imageData.data.set(decodeBlurHash(this.state.photoInfo.blur_hash, 32, 32)); ctx.putImageData(imageData, 0, 0); - // let blob = await new Promise(resolve => canvas.toBlob(resolve, 'image/png')); - // const blobUrl = URL.createObjectURL(blob); backgroundImage.style.backgroundImage = `url(${canvas.toDataURL()})`; - // backgroundImage.style.backgroundImage = `url(${blobUrl})`; } // const img = new Image(); diff --git a/src/components/widgets/background/Favourite.jsx b/src/components/widgets/background/Favourite.jsx index 8bf7778e..4e1098ea 100644 --- a/src/components/widgets/background/Favourite.jsx +++ b/src/components/widgets/background/Favourite.jsx @@ -17,7 +17,7 @@ export default class Favourite extends PureComponent { }; } - favourite() { + async favourite() { if (localStorage.getItem('favourite')) { localStorage.removeItem('favourite'); this.setState({ @@ -41,7 +41,7 @@ export default class Favourite extends PureComponent { ); break; default: - const url = document + let url = document .getElementById('backgroundImage') .style.backgroundImage.replace('url("', '') .replace('")', '') @@ -51,6 +51,14 @@ export default class Favourite extends PureComponent { return; } + if (url.startsWith('blob:')) { + const reader = new FileReader(); + url = await new Promise(async resolve => { + reader.onloadend = () => resolve(reader.result); + reader.readAsDataURL(await (await fetch(url)).blob()); + }) + } + if (type === 'custom') { localStorage.setItem( 'favourite', @@ -70,8 +78,8 @@ export default class Favourite extends PureComponent { type, url, credit: document.getElementById('credit').textContent || '', - location: location ? location.innerText : 'N/A', - camera: camera ? camera.innerText : 'N/A', + location: location?.innerText, + camera: camera?.innerText, resolution: document.getElementById('infoResolution').textContent || '', }), );