fluttercandies / extended_image

A powerful official extension library of image, which support placeholder(loading)/ failed state, cache network, zoom pan image, photo view, slide out page, editor(crop,rotate,flip), paint custom etc.
https://fluttercandies.github.io/extended_image/
MIT License
1.94k stars 505 forks source link

[Bug report] #657

Open BigMing-Han opened 9 months ago

BigMing-Han commented 9 months ago

Version

extended_image 8.2.0

Platforms

iOS

Device Model

iphone 11

flutter info

[✓] Flutter (Channel stable, 3.16.4, on macOS 14.2.1 23C71 darwin-arm64
    (Rosetta), locale zh-Hans-CN)
    • Flutter version 3.16.4 on channel stable at
      /Users/hansaiming/fvm/versions/3.16.4
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2e9cb0aa71 (7 weeks ago), 2023-12-11 14:35:13 -0700
    • Engine revision 54a7145303
    • Dart version 3.2.3
    • DevTools version 2.28.4
    • Pub download mirror
      https://jfrog-prod.maezia.com/artifactory/api/pub/dssomobile-pub-virtual
    • Flutter download mirror https://storage.flutter-io.cn

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/hansaiming/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15C65
    • CocoaPods version 1.14.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)

[✓] VS Code (version 1.85.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.80.0

How to reproduce?

裁剪功能一直放大缩小照片

Logs

2024-02-01 11:34:28.449442+0800 Runner[71455:7439952] [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Unsupported operation: Compared with Infinity or NaN
#0      DoubleExtension.compare (package:extended_image/src/utils.dart:95)
#1      DoubleExtension.lessThanOrEqualTo (package:extended_image/src/utils.dart:123)
#2      EditActionDetails.computeBoundary (package:extended_image/src/editor/editor_utils.dart:358)
#3      EditActionDetails.getFinalDestinationRect (package:extended_image/src/editor/editor_utils.dart:272)
#4      paintExtendedImage (package:extended_image/src/image/painting.dart:224)
#5      ExtendedRenderImage.paint (package:extended_image/src/image/render_image.dart:506)
#6      RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3208)
#7      PaintingContext.paintChild (package:flutter/src/rendering/object.dart:250)
#8      RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2882)
#9      RenderStack.paintStack (package:flutter/src/rendering/stack.dart:640)
#10     RenderStack.paint (package:flutter/src/rendering/stack.dart:656)
#11     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3208)
#12     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:250)
#13     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:129)
#14     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3208)
#15     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:250)
#16     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:129)
#17     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3208)
#18     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:250)
#19     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:129)
#20     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3208)
#21     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:250)
#22     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:129)
#23     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3208)
#24     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:250)
#25     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:129)
#26     PaintingContext.pushClipRect.<anonymous closure> (package:flutter/src/rendering/object.dart:549)
#27     ClipContext._clipAndPaint (package:flutter/src/painting/clip.dart:25)
#28     ClipContext.clipRRectAndPaint (package:flutter/src/painting/clip.dart:45)
#29     PaintingContext.pushClipRRect (package:flutter/src/rendering/object.dart:588)
#30     RenderClipRRect.paint (package:flutter/src/rendering/proxy_box.dart:1634)
#31     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3208)
#32     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:250)
#33     _RenderColoredBox.paint (package:flutter/src/widgets/basic.dart:7813)
#34     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3208)
#35     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:250)
#36     RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2882)
#37     RenderFlex.paint (package:flutter/src/rendering/flex.dart:1040)
#38     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3208)
#39     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:250)
#40     _RenderColoredBox.paint (package:flutter/src/widgets/basic.dart:7813)
#41     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3208)
#42     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:250)
#43     RenderShiftedBox.paint (package:flutter/src/rendering/shifted_box.dart:74)
#44     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3208)
#45     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:250)
#46     RenderBoxContainerDefaultsMixin.defaultPaint (package:flutter/src/rendering/box.dart:2882)
#47     RenderCustomMultiChildLayoutBox.paint (package:flutter/src/rendering/custom_layout.dart:408)
#48     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3208)
#49     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:250)
#50     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:129)
#51     _RenderInkFeatures.paint (package:flutter/src/material/material.dart:662)
#52     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3208)
#53     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:250)
#54     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:129)
#55     RenderPhysicalShape.paint.<anonymous closure> (package:flutter/src/rendering/proxy_box.dart:2156)
#56     PaintingContext.pushClipRRect (package:flutter/src/rendering/object.dart:575)
#57     RenderPhysicalModel.paint (package:flutter/src/rendering/proxy_box.dart:2030)
#58     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3208)
#59     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:250)
#60     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:129)
#61     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3208)
#62     PaintingContext.paintChild (package:flutter/src/rendering/object.dart:250)
#63     RenderProxyBoxMixin.paint (package:flutter/src/rendering/proxy_box.dart:129)
#64     RenderObject._paintWithContext (package:flutter/src/rendering/object.dart:3208)
#65     PaintingContext._repaintCompositedChild (package:flutter/src/rendering/object.dart:166)
#66     PaintingContext.repaintCompositedChild (package:flutter/src/rendering/object.dart:109)
#67     PipelineOwner.flushPaint (package:flutter/src/rendering/object.dart:1156)
#68     PipelineOwner.flushPaint (package:flutter/src/rendering/object.dart:1166)
#69     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:593)
#70     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:986)
#71     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:457)
#72     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1325)
#73     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1255)
#74     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1113)
#75     _rootRun (dart:async/zone.dart:1399)
#76     _CustomZone.run (dart:async/zone.dart:1301)
#77     _CustomZone.runGuarded (dart:async/zone.dart:1209)
#78     _invoke (dart:ui/hooks.dart:314)
#79     PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:383)
#80     _drawFrame (dart:ui/hooks.dart:283)

Example code (optional)

ClipRRect(
                      child: ExtendedImage.file(
                        widget.imageFilePath,
                        fit: BoxFit.contain,
                        mode: ExtendedImageMode.editor,
                        enableLoadState: true,
                        extendedImageEditorKey: editorKey,
                        initEditorConfigHandler: (ExtendedImageState? state) =>
                            _editorConfig,
                        cacheRawData: true,
                      ),
                    ),

Contact

No response