Giter Club home page Giter Club logo

image_cropping's Introduction

image_cropping

image_cropping version MIT License MIT License

This plugin supports cropping and rotating images for multiplatform. It Allow inclusion of background, Rotation of image, changing ratio of selection as per requirements.

Allow inclusion of background.

Image Plugin

Rotation of image.

Image Plugin

Change ratio of selection.

Image Plugin

Installation

If you are targeting web, don't forget to add worker.js in your project's root directory.

You can also add worker.js.deps and worker.js.map but they are optional and only used for development.

These 3 files are generated when running the following command in the example folder:

dart compile js -O1 -o web/worker.js lib/worker.dart

For more details on the command, check this link. It converts the dart code to JS, which will then be run in a web worker.

Example

final croppedBytes = await ImageCropping.cropImage(
    context: context,
    imageBytes: bytes,
    onImageStartLoading: () {
        showLoader();
    },
    onImageEndLoading: () {
        hideLoader();
    },
    onImageDoneListener: (data) {
        // You can also use a listener instead of awaiting the function
        setState(() {
          imageBytes = data;
        });
    },
    selectedImageRatio: ImageRatio.RATIO_1_1,
    visibleOtherAspectRatios: true,
    squareBorderWidth: 2,
    squareCircleColor: Colors.black,
    defaultTextColor: Colors.orange,
    selectedTextColor: Colors.black,
    colorForWhiteSpace: Colors.grey,
    encodingQuality: 80,
    outputImageFormat: OutputImageFormat.jpg, 
    workerPath: 'crop_worker.js',
);

Required parameters

BuildContext:

Context is use to push new screen for image cropping.

_imageBytes:

Image bytes is use to draw image in device and if image not fits in device screen then we manage background color(if you have passed colorForWhiteSpace or else White background) in image cropping screen.

_onImageStartLoading:

This is a callback. you have to override and show dialog or etc when image cropping is in loading state.

_onImageEndLoading:

This is a callback. you have to override and hide dialog or etc when image cropping is ready to show result in cropping screen.

_onImageDoneListener:

This is a callback. you have to override and you will get Uint8List as result.

Optional parameters

ImageRatio:

This property contains ImageRatio value. You can set the initialized aspect ratio when starting the cropper by passing a value of ImageRatio. default value is ImageRatio.FREE

visibleOtherAspectRatios:

This property contains boolean value. If this properties is true then it shows all other aspect ratios in cropping screen. default value is true.

squareBorderWidth:

This property contains double value. You can change square border width by passing this value.

squareCircleColor:

This property contains Color value. You can change square circle color by passing this value.

defaultTextColor:

This property contains Color value. By passing this property you can set aspect ratios color which are unselected.

selectedTextColor:

This property contains Color value. By passing this property you can set aspect ratios color which is selected.

colorForWhiteSpace:

This property contains Color value. By passing this property you can set background color, if screen contains blank space.

encodingQuality

Set the encodingQuality of the cropped image. Defaults to 100 (max). High quality involves bigger image file size.

outputImageFormat

Output format of cropped image, can be PNG or JPG, default is JPG.

workerPath

You may want to change the worker.js name, especially if you use other web workers and you already have a worker.js file. Defaults to 'worker.js'.

Note:

For flutter web, copy worker.js from example folder to the project, else it will not work. The result returns in Uint8List. so it can be lost later, you are responsible for storing it somewhere permanent (if needed).

Guideline for contributors

Contribution towards our repository is always welcome, we request contributors to create a pull request to the develop branch only.

Guideline to report an issue/feature request

It would be great for us if the reporter can share the below things to understand the root cause of the issue.

  • Library version
  • Code snippet
  • Logs if applicable
  • Device specification like (Manufacturer, OS version, etc)
  • Screenshot/video with steps to reproduce the issue

Library used

LICENSE!

Image Cropper is MIT-licensed.

Let us know!

We’d be really happy if you send us links to your projects where you use our component. Just send an email to [email protected] And do let us know if you have any questions or suggestion regarding our work.

image_cropping's People

Contributors

abrarmalekji345 avatar ankit-mahadik-mi avatar anujmi297 avatar deepbhavsar01 avatar mi-ghanshyam avatar n7484443 avatar sahilmind avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

image_cropping's Issues

Performance on WEB

Hi!
I found a possibility of most performance on flutter web.
Its possible to use the resources of the dart:ui package.
In example bellow you can resize an image and possible pass the width and heigth properties for the image in result.

Size _calculateSize({required Size imageSize, double? width, double? height}) {
    if (width != null && height != null) {
      return Size(width, height);
    } else if (width != null) {
      final scale = width / imageSize.width;
      final height = imageSize.height * scale;
      return Size(width, height);
    } else if (height != null) {
      final scale = height / imageSize.height;
      final width = imageSize.width * scale;
      return Size(width, height);
    }
    return imageSize;
  }
  
Future<ui.Image> resize(Uint8List image, {double? width, double? height}) async {
    final codec = await ui.instantiateImageCodec(image);
    final frameInfo = await codec.getNextFrame();
    final pictureRecorder = ui.PictureRecorder();
    final size = _calculateSize(
      imageSize: Size(
        frameInfo.image.width.toDouble(),
        frameInfo.image.height.toDouble(),
      ),
      height: height,
      width: width,
    );
    Canvas(pictureRecorder).drawImageRect(
      frameInfo.image,
      Rect.fromLTWH(0, 0, frameInfo.image.width.toDouble(), frameInfo.image.height.toDouble()), //change here 
      Rect.fromLTWH(0, 0, size.width, size.height), //change here
      Paint(),
    );
    frameInfo.image.dispose();
    return await pictureRecorder.endRecording().toImage(size.width.toInt(), size.height.toInt());
  }

For croping, you maybe change the parameters commenteds such necessary.
I hope this helps.

Wrong are cropping issue

Hi! I am so thankful. your package is looks very nice and useful. But when i try to crop image as 1/1 , the result shape should be square. Actually it never really crops right. the result stays to the left of which is clipped. Is this happening only to me? I am working on windows by the way.

Warning: Operand of null-aware operation '?.' has type 'WidgetsBinding' which excludes null.

https://github.com/Mindinventory/image_cropping/blob/master/lib/image_cropping.dart

remove old one :
WidgetsBinding.instance?.addPostFrameCallback((timeStamp) async {
topViewHeight = stackGlobalKey.globalPaintBounds?.top ?? 0;
});

replace with:
WidgetsBinding.instance.addPostFrameCallback((timeStamp) async {
topViewHeight = stackGlobalKey.globalPaintBounds?.top ?? 0;
});

Warning: Operand of null-aware operation '?.' has type 'WidgetsBinding' which excludes null.

image

image_cropping infos

From the README

Library used
...
flutter_image_compress

This raises two questions for me:

  1. Is this still right, its not shown in the pub.dev dependencies nor in the pubspec.yaml
  2. Does this package also works on other platforms

Increasing the "initial" size of the crop area, Rotation issues On mac and windows, Embedding the widget

  • Initial size is too small: As you can see from the image below, the crop area is too small, is there a way to provide a bigger size?

Screenshot 2023-03-08 at 11 02 39 AM

  • rotation issue: When the crop area is big and the image is rotated, the crop area does not adjust until you try to resize it yourself, and when you try it flickers

Screenshot 2023-03-08 at 11 04 55 AM

Is there a way to fix it??

  • embedding the widget: I tried having a look at your code base, and I saw that there is a view that I can call directly, But when I do that, the image has an offset towards the left and the crop area seems blocked ( since I cannot size on the left), I think this might be due to the SafeArea... I am not sure....

Error (Xcode): ../../../.pub-cache/hosted/pub.dev/image_crop-0.4.1/lib/src/crop.dart:63:68: Error: The class 'Drag' can't be used as a mixin because it isn't a mixin class nor a mixin

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.13.6, on macOS 14.1 23B74 darwin-x64)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 15.0.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2023.1)
[✓] VS Code (version 1.86.2)

Initial crop marker size

Thank you for great package,

Add a parameter to choose initial crop marker size to be entire image width, height or default(Center)

Choosing image from gallery using file picker package to image_cropping package

Choosing image from gallery using file picker package to image_cropping package

E/flutter (11146): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Null check operator used on a null value
E/flutter (11146): #0 ImageProcess.getCompressedImage (package:image_cropping/common/compress_process.dart:65:58)
E/flutter (11146): #1 ImageProcess.compress (package:image_cropping/common/compress_process.dart:28:26)
E/flutter (11146): #2 _ImageCroppingScreenState._generateLibraryImage (package:image_cropping/image_cropping.dart:264:20)
E/flutter (11146): #3 _ImageCroppingScreenState.initState (package:image_cropping/image_cropping.dart:191:5)
E/flutter (11146): #4 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5101:55)
E/flutter (11146): #5 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #6 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #7 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #8 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6377:14)
E/flutter (11146): #9 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #10 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #11 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #12 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #13 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #14 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #15 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #16 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #17 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6377:14)
E/flutter (11146): #18 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #19 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #20 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6377:14)
E/flutter (11146): #21 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #22 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #23 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #24 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
E/flutter (11146): #25 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #26 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #27 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5124:11)
E/flutter (11146): #28 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #29 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #30 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #31 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6377:14)
E/flutter (11146): #32 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #33 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #34 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #35 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
E/flutter (11146): #36 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #37 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #38 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5124:11)
E/flutter (11146): #39 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #40 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #41 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #42 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6377:14)
E/flutter (11146): #43 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #44 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #45 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #46 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
E/flutter (11146): #47 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #48 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #49 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5124:11)
E/flutter (11146): #50 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #51 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #52 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #53 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #54 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
E/flutter (11146): #55 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #56 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #57 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5124:11)
E/flutter (11146): #58 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #59 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #60 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #61 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6377:14)
E/flutter (11146): #62 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #63 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #64 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #65 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
E/flutter (11146): #66 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #67 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #68 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5124:11)
E/flutter (11146): #69 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #70 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #71 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #72 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6377:14)
E/flutter (11146): #73 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #74 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #75 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #76 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
E/flutter (11146): #77 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #78 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #79 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5124:11)
E/flutter (11146): #80 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #81 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #82 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #83 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #84 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
E/flutter (11146): #85 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #86 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #87 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5124:11)
E/flutter (11146): #88 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #89 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #90 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #91 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #92 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #93 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #94 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #95 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #96 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #97 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #98 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
E/flutter (11146): #99 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #100 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #101 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5124:11)
E/flutter (11146): #102 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #103 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #104 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #105 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6377:14)
E/flutter (11146): #106 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #107 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #108 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #109 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #110 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #111 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #112 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #113 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #114 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6377:14)
E/flutter (11146): #115 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #116 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #117 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #118 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
E/flutter (11146): #119 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #120 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #121 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5124:11)
E/flutter (11146): #122 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #123 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #124 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #125 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #126 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #127 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #128 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #129 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #130 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #131 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #132 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #133 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #134 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #135 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #136 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #137 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #138 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
E/flutter (11146): #139 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #140 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #141 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5124:11)
E/flutter (11146): #142 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #143 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #144 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #145 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #146 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #147 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #148 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #149 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #150 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #151 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #152 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #153 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #154 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #155 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #156 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #157 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6377:14)
E/flutter (11146): #158 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #159 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #160 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #161 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #162 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #163 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #164 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #165 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #166 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #167 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #168 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #169 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #170 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #171 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #172 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #173 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
E/flutter (11146): #174 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #175 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #176 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5124:11)
E/flutter (11146): #177 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #178 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #179 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #180 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #181 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
E/flutter (11146): #182 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #183 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #184 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5124:11)
E/flutter (11146): #185 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #186 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #187 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #188 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #189 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
E/flutter (11146): #190 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #191 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #192 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5124:11)
E/flutter (11146): #193 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #194 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #195 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #196 SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6377:14)
E/flutter (11146): #197 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #198 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #199 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #200 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #201 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #202 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #203 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #204 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #205 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #206 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
E/flutter (11146): #207 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #208 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #209 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5124:11)
E/flutter (11146): #210 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #211 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #212 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #213 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #214 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
E/flutter (11146): #215 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #216 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4950:5)
E/flutter (11146): #217 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5124:11)
E/flutter (11146): #218 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4944:5)
E/flutter (11146): #219 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3953:16)
E/flutter (11146): #220 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6512:36)
E/flutter (11146): #221 Element.updateChild (package:flutter/src/widgets/framework.dart:3682:18)
E/flutter (11146): #222 RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:6041:32)
E/flutter (11146): #223 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6537:17)
E/flutter (11146): #224 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
E/flutter (11146): #225 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #226 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
E/flutter (11146): #227 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #228 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
E/flutter (11146): #229 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
E/flutter (11146): #230 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #231 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #232 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
E/flutter (11146): #233 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
E/flutter (11146): #234 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #235 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #236 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
E/flutter (11146): #237 _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:107:11)
E/flutter (11146): #238 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
E/flutter (11146): #239 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #240 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
E/flutter (11146): #241 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #242 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
E/flutter (11146): #243 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
E/flutter (11146): #244 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #245 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #246 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
E/flutter (11146): #247 _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:107:11)
E/flutter (11146): #248 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
E/flutter (11146): #249 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #250 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
E/flutter (11146): #251 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #252 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
E/flutter (11146): #253 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
E/flutter (11146): #254 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #255 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #256 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
E/flutter (11146): #257 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
E/flutter (11146): #258 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #259 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
E/flutter (11146): #260 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #261 StatefulElement.update (package:flutter/src/widgets/framework.dart:5156:5)
E/flutter (11146): #262 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
E/flutter (11146): #263 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
E/flutter (11146): #264 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
E/flutter (11146): #265 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6384:14)
E/flutter (11146): #266 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
E/flutter (11146): #267 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #268 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #269 ProxyElement.update (package:flutter/src/widgets/framework.dart:5301:5)
E/flutter (11146): #270 Element.updateChild (package:flutter/src/widgets/framework.dart:3660:15)
E/flutter (11146): #271 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4993:16)
E/flutter (11146): #272 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5133:11)
E/flutter (11146): #273 Element.rebuild (package:flutter/src/widgets/framework.dart:4690:5)
E/flutter (11146): #274 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2743:19)
E/flutter (11146): #275 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:863:21)
E/flutter (11146): #276 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:381:5)
E/flutter (11146): #277 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1289:15)
E/flutter (11146): #278 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1218:9)
E/flutter (11146): #279 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1076:5)
E/flutter (11146): #280 _rootRun (dart:async/zone.dart:1398:13)
E/flutter (11146): #281 _CustomZone.run (dart:async/zone.dart:1300:19)
E/flutter (11146): #282 _CustomZone.runGuarded (dart:async/zone.dart:1208:7)
E/flutter (11146): #283 _invoke (dart:ui/hooks.dart:147:10)
E/flutter (11146): #284 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:338:5)
E/flutter (11146): #285 _drawFrame (dart:ui/hooks.dart:112:31)

Works on Android but on web just getting circular progress indicator

Hi, thank you for sharing this package.

It is working for me on android but when I deploy to web, when I initiate the plugin I just get a new screen with a circular progress indicator. There are no errors showing in the console, the console message says: blob:https://foobar.web.app/69a6817b-a37b-478a-8b04-976d41796cf5. I have tried various images at different sizes and always get the same result.

Also on android I've found large images (multiple mb) cause the plugin to hang, sometimes crash. Is this something you can optimise?

Thanks

On Web UI is freezing

on the Web, It Freezes the UI when Opening the Cropper and after cropping, on both times it freezes.

Landscape mode

Hi! First of all, thanks for this package!

I am experiencing an issue when using it in an application that must support also landscape mode, when the image_cropping screen pops up it will move to portrait mode and once it's done it will not go back to landscape.

Would it be possible for you to also support landscape mode?

want to cropper set on whole image instead of center

Hello Team,

I need some help. I want cropper set on whole image base on image height and width how to achieve it using current code and which file /function need to changes also i need x & y starting position 0,0 .please team help me out.

Thanks ,
Screenshot_1
Screenshot_2

Yogita

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.