fix(image-generator) : preserve uploaded images in exports
This commit is contained in:
@@ -791,18 +791,6 @@ export function OverviewImageGenerator({
|
||||
};
|
||||
const displayRole =
|
||||
role === "Custom" ? customRoleText.trim() || "Custom" : role;
|
||||
useEffect(
|
||||
() => () => {
|
||||
if (backgroundUrl) URL.revokeObjectURL(backgroundUrl);
|
||||
},
|
||||
[backgroundUrl],
|
||||
);
|
||||
useEffect(
|
||||
() => () => {
|
||||
if (artworkUrl) URL.revokeObjectURL(artworkUrl);
|
||||
},
|
||||
[artworkUrl],
|
||||
);
|
||||
|
||||
function detectArtworkTheme(
|
||||
source: CanvasImageSource,
|
||||
@@ -932,7 +920,13 @@ export function OverviewImageGenerator({
|
||||
if (target === "artwork") {
|
||||
detectArtworkTheme(image, image.naturalWidth, image.naturalHeight);
|
||||
setCharacterScale(100);
|
||||
setArtworkUrl(url);
|
||||
setArtworkUrl(await new Promise<string>((resolve, reject) => {
|
||||
const reader = new FileReader();
|
||||
reader.onload = () => resolve(reader.result as string);
|
||||
reader.onerror = reject;
|
||||
reader.readAsDataURL(file);
|
||||
}));
|
||||
URL.revokeObjectURL(url);
|
||||
setArtworkError(null);
|
||||
return;
|
||||
}
|
||||
@@ -976,16 +970,10 @@ export function OverviewImageGenerator({
|
||||
if (pendingCrop.target === "artwork") {
|
||||
detectArtworkTheme(canvas, canvas.width, canvas.height);
|
||||
}
|
||||
const blob = await new Promise<Blob>((resolve, reject) =>
|
||||
canvas.toBlob(
|
||||
(value) =>
|
||||
value ? resolve(value) : reject(new Error("Crop failed")),
|
||||
"image/png",
|
||||
),
|
||||
);
|
||||
const croppedUrl = canvas.toDataURL("image/png");
|
||||
if (pendingCrop.target === "background")
|
||||
setBackgroundUrl(URL.createObjectURL(blob));
|
||||
else setArtworkUrl(URL.createObjectURL(blob));
|
||||
setBackgroundUrl(croppedUrl);
|
||||
else setArtworkUrl(croppedUrl);
|
||||
setPendingCrop(null);
|
||||
setArtworkError(null);
|
||||
} catch {
|
||||
|
||||
Reference in New Issue
Block a user