@@ -1498,7 +1498,7 @@ export default class StageShield extends DrawerBase implements IStageShield, ISt
1498
1498
this . event . on ( "scaleIncrease" , this . _handleScaleIncrease . bind ( this ) ) ;
1499
1499
this . event . on ( "scaleAutoFit" , this . _handleScaleAutoFit . bind ( this ) ) ;
1500
1500
this . event . on ( "scale100" , this . _handleScale100 . bind ( this ) ) ;
1501
- this . event . on ( "pasteImage " , this . _handleImagePasted . bind ( this ) ) ;
1501
+ this . event . on ( "pasteImages " , this . _handleImagesPasted . bind ( this ) ) ;
1502
1502
this . event . on ( "deleteSelects" , this . _handleSelectsDelete . bind ( this ) ) ;
1503
1503
this . event . on ( "selectAll" , this . selectAll . bind ( this ) ) ;
1504
1504
this . event . on ( "selectCopy" , this . _handleSelectCopy . bind ( this ) ) ;
@@ -2642,6 +2642,17 @@ export default class StageShield extends DrawerBase implements IStageShield, ISt
2642
2642
*/
2643
2643
calcScaleAutoFitValueByBox ( box : IPoint [ ] ) : number {
2644
2644
const { width, height } = CommonUtils . calcRectangleSize ( box ) ;
2645
+ return this . calcScaleAutoFitValueBySize ( width , height ) ;
2646
+ }
2647
+
2648
+ /**
2649
+ * 给定尺寸计算自动适应缩放值
2650
+ *
2651
+ * @param width
2652
+ * @param height
2653
+ * @returns
2654
+ */
2655
+ calcScaleAutoFitValueBySize ( width : number , height : number ) : number {
2645
2656
let scale = MathUtils . precise ( CommonUtils . calcScale ( this . stageRect , { width, height } , AutoFitPadding * this . stageScale ) , 2 ) ;
2646
2657
scale = clamp ( scale , 0.02 , 1 ) ;
2647
2658
return scale ;
@@ -2653,18 +2664,18 @@ export default class StageShield extends DrawerBase implements IStageShield, ISt
2653
2664
* @returns
2654
2665
*/
2655
2666
calcScaleAutoFitValue ( ) : number {
2656
- const elementsBox = CommonUtils . getBoxByPoints ( this . store . visibleElements . map ( element => element . maxOutlineBoxCoords ) . flat ( ) ) ;
2657
- return this . calcScaleAutoFitValueByBox ( elementsBox ) ;
2667
+ return this . calcElementsAutoFitValue ( this . store . visibleElements ) ;
2658
2668
}
2659
2669
2660
2670
/**
2661
- * 计算某个组件的自动适应缩放值
2671
+ * 计算给定组件的自动适应缩放值
2662
2672
*
2663
- * @param element
2664
- * @returns
2673
+ * @param elements
2674
+ * @returns
2665
2675
*/
2666
- calcElementAutoFitValue ( element : IElement ) : number {
2667
- return this . calcScaleAutoFitValueByBox ( element . maxOutlineBoxCoords ) ;
2676
+ calcElementsAutoFitValue ( elements : IElement [ ] ) : number {
2677
+ const elementsBox = CommonUtils . getBoxByPoints ( elements . map ( element => element . maxOutlineBoxCoords ) . flat ( ) ) ;
2678
+ return this . calcScaleAutoFitValueByBox ( elementsBox ) ;
2668
2679
}
2669
2680
2670
2681
/**
@@ -2739,14 +2750,14 @@ export default class StageShield extends DrawerBase implements IStageShield, ISt
2739
2750
* @param imageData
2740
2751
* @param callback
2741
2752
*/
2742
- async _handleImagePasted ( imageData : ImageData , callback ?: Function ) : Promise < void > {
2753
+ async _handleImagesPasted ( imageDatas : ImageData [ ] , callback ?: Function ) : Promise < void > {
2743
2754
this . _clearSelects ( ) ;
2744
- const element = await this . store . insertImageElement ( imageData ) ;
2745
- const nextScale = this . calcElementAutoFitValue ( element ) ;
2755
+ const elements = await this . store . insertImageElements ( imageDatas ) ;
2756
+ const nextScale = this . calcElementsAutoFitValue ( elements ) ;
2746
2757
if ( this . stageScale > nextScale ) {
2747
2758
await this . setScale ( nextScale ) ;
2748
2759
}
2749
- await this . _tryAddAddedCommand ( [ element ] ) ;
2760
+ await this . _tryAddAddedCommand ( elements ) ;
2750
2761
callback && callback ( ) ;
2751
2762
}
2752
2763
0 commit comments