@@ -351,10 +351,38 @@ const handleAdoptedStyleSheets = (doc, clone, shadowNodeId) => {
351
351
}
352
352
}
353
353
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
+
354
382
const deepClone = ( host ) => {
355
383
let shadowNodeId = 1 ;
356
384
357
- const cloneNode = ( node , parent , shadowRoot ) => {
385
+ const cloneNode = async ( node , parent , shadowRoot ) => {
358
386
const walkTree = ( nextn , nextp , innerShadowRoot ) => {
359
387
while ( nextn ) {
360
388
cloneNode ( nextn , nextp , innerShadowRoot ) ;
@@ -371,7 +399,12 @@ const deepClone = (host) => {
371
399
372
400
if ( node instanceof HTMLCanvasElement ) {
373
401
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 ) ;
375
408
} catch ( exp ) {
376
409
console . warn ( "Gleap: Failed to clone canvas data." , exp ) ;
377
410
}
0 commit comments