File tree Expand file tree Collapse file tree 1 file changed +60
-3
lines changed
Expand file tree Collapse file tree 1 file changed +60
-3
lines changed Original file line number Diff line number Diff line change @@ -831,10 +831,38 @@ const DrawPageCore: React.FC<{
831831 return ;
832832 }
833833
834+ // 获取滚动截图的实际图像数据
835+ const imageData = await scrollScreenshotGetImageData ( true ) ;
836+ if ( ! imageData ) {
837+ message . error (
838+ < FormattedMessage id = "draw.scrollScreenshotSizeError" /> ,
839+ ) ;
840+ return ;
841+ }
842+
843+ // 将图像数据转换为 ArrayBuffer
844+ const captureResult = await new Promise < ArrayBuffer | undefined > (
845+ ( resolve ) => {
846+ if ( imageData instanceof HTMLCanvasElement ) {
847+ imageData . toBlob (
848+ async ( blob ) => {
849+ resolve ( await blob ?. arrayBuffer ( ) ) ;
850+ } ,
851+ "image/png" ,
852+ 1 ,
853+ ) ;
854+ } else if ( imageData instanceof ArrayBuffer ) {
855+ resolve ( imageData ) ;
856+ } else {
857+ resolve ( undefined ) ;
858+ }
859+ } ,
860+ ) ;
861+
834862 saveCaptureHistory (
835- undefined ,
863+ captureResult ,
836864 CaptureHistorySource . ScrollScreenshotSave ,
837- ) ; // 滚动截图不保存编辑结果
865+ ) ; // 保存滚动截图的完整图像数据
838866
839867 const imagePath =
840868 ( await getImagePathFromSettings (
@@ -1109,7 +1137,36 @@ const DrawPageCore: React.FC<{
11091137 return ;
11101138 }
11111139
1112- saveCaptureHistory ( undefined , CaptureHistorySource . ScrollScreenshotCopy ) ;
1140+ // 获取滚动截图的实际图像数据
1141+ const imageData = await scrollScreenshotGetImageData ( true ) ;
1142+ if ( ! imageData ) {
1143+ message . error ( < FormattedMessage id = "draw.scrollScreenshotSizeError" /> ) ;
1144+ return ;
1145+ }
1146+
1147+ // 将图像数据转换为 ArrayBuffer
1148+ const captureResult = await new Promise < ArrayBuffer | undefined > (
1149+ ( resolve ) => {
1150+ if ( imageData instanceof HTMLCanvasElement ) {
1151+ imageData . toBlob (
1152+ async ( blob ) => {
1153+ resolve ( await blob ?. arrayBuffer ( ) ) ;
1154+ } ,
1155+ "image/png" ,
1156+ 1 ,
1157+ ) ;
1158+ } else if ( imageData instanceof ArrayBuffer ) {
1159+ resolve ( imageData ) ;
1160+ } else {
1161+ resolve ( undefined ) ;
1162+ }
1163+ } ,
1164+ ) ;
1165+
1166+ saveCaptureHistory (
1167+ captureResult ,
1168+ CaptureHistorySource . ScrollScreenshotCopy ,
1169+ ) ;
11131170
11141171 const filePath = (
11151172 await getImagePathFromSettings ( getAppSettings ( ) , "auto" )
You can’t perform that action at this time.
0 commit comments