fix(media): handle SVG inputs using browser Canvas pre-conversion for ImageMagick WASM
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { loadImageMagick } from '@/lib/media/wasm/wasmLoader';
|
||||
import { convertSvgToPng } from '../utils/fileUtils';
|
||||
import type { ConversionOptions, ProgressCallback, ConversionResult } from '@/types/media';
|
||||
|
||||
/**
|
||||
@@ -13,6 +14,19 @@ export async function convertWithImageMagick(
|
||||
const startTime = Date.now();
|
||||
|
||||
try {
|
||||
let inputFile = file;
|
||||
const isSvg = file.type === 'image/svg+xml' || file.name.endsWith('.svg');
|
||||
|
||||
// Handle SVG inputs by pre-converting to PNG using browser Canvas
|
||||
if (isSvg) {
|
||||
if (onProgress) onProgress(5);
|
||||
// If we have dimensions in options, use them, otherwise use a high-res default
|
||||
const width = options.imageWidth || 1024;
|
||||
const height = options.imageHeight || 1024;
|
||||
const pngBlob = await convertSvgToPng(file, width, height);
|
||||
inputFile = new File([pngBlob], file.name.replace(/\.svg$/i, '.png'), { type: 'image/png' });
|
||||
}
|
||||
|
||||
// Load ImageMagick instance
|
||||
await loadImageMagick();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user