@@ -351,10 +351,38 @@ const handleAdoptedStyleSheets = (doc, clone, shadowNodeId) => {
351351 }
352352}
353353
354+
355+ const resizeCanvas = ( canvas , pct ) => {
356+ return new Promise ( ( resolve , reject ) => {
357+ const cw = canvas . width ;
358+ const ch = canvas . height ;
359+
360+ // Create a copy of the original canvas
361+ const originalCanvas = document . createElement ( "canvas" ) ;
362+ originalCanvas . width = cw ;
363+ originalCanvas . height = ch ;
364+ const originalCtx = originalCanvas . getContext ( "2d" ) ;
365+ originalCtx . drawImage ( canvas , 0 , 0 ) ;
366+
367+ // Create an off-screen canvas for resizing
368+ const resizedCanvas = document . createElement ( "canvas" ) ;
369+ resizedCanvas . width = cw * pct ;
370+ resizedCanvas . height = ch * pct ;
371+ const rctx = resizedCanvas . getContext ( "2d" ) ;
372+
373+ // Draw the image from the original canvas onto the off-screen resized canvas
374+ rctx . drawImage ( originalCanvas , 0 , 0 , cw , ch , 0 , 0 , cw * pct , ch * pct ) ;
375+
376+ // Get the resized image data
377+ const resizedCanvasData = resizedCanvas . toDataURL ( ) ;
378+ resolve ( resizedCanvasData ) ;
379+ } ) ;
380+ } ;
381+
354382const deepClone = ( host ) => {
355383 let shadowNodeId = 1 ;
356384
357- const cloneNode = ( node , parent , shadowRoot ) => {
385+ const cloneNode = async ( node , parent , shadowRoot ) => {
358386 const walkTree = ( nextn , nextp , innerShadowRoot ) => {
359387 while ( nextn ) {
360388 cloneNode ( nextn , nextp , innerShadowRoot ) ;
@@ -371,7 +399,12 @@ const deepClone = (host) => {
371399
372400 if ( node instanceof HTMLCanvasElement ) {
373401 try {
374- clone . setAttribute ( "bb-canvas-data" , resizeImage ( node . toDataURL ( ) , 750 , 750 ) ) ;
402+ const resizedCanvasData = await resizeCanvas ( node , 0.50 ) ; // Scale down by 50%
403+
404+ // const resizedImage = await resizeImage(node.toDataURL(), 3500, 3500);
405+ // const originalCanvas = resizeTo(node, 0.50);
406+
407+ clone . setAttribute ( "bb-canvas-data" , resizedCanvasData ) ;
375408 } catch ( exp ) {
376409 console . warn ( "Gleap: Failed to clone canvas data." , exp ) ;
377410 }
0 commit comments