flutter-ml / google_ml_kit_flutter

A flutter plugin that implements Google's standalone ML Kit
MIT License
907 stars 709 forks source link

feat: Support more image formats on Android #634

Closed ueman closed 1 month ago

ueman commented 1 month ago

Instead of hardcoding a specific format, we're now properly using the correct format as specified on the Dart side.

In case an invalid image format was used, this throws the following exception:

PlatformException(error, null, null, java.lang.IllegalArgumentException
    at com.google.android.gms.common.internal.Preconditions.checkArgument(com.google.android.gms:play-services-basement@@18.3.0:1)
    at com.google.mlkit.vision.common.InputImage.<init>(com.google.mlkit:vision-common@@17.3.0:7)
    at com.google.mlkit.vision.common.InputImage.fromByteArray(com.google.mlkit:vision-common@@17.3.0:2)
    at com.google_mlkit_commons.InputImageConverter.getInputImageFromData(InputImageConverter.java:36)
    at com.google_mlkit_barcode_scanning.BarcodeScanner.handleDetection(BarcodeScanner.java:70)
    at com.google_mlkit_barcode_scanning.BarcodeScanner.onMethodCall(BarcodeScanner.java:41)
    at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:267)
    at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:292)
    at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:319)
    at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12)
    at android.os.Handler.handleCallback(Handler.java:938)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loopOnce(Looper.java:210)
    at android.os.Looper.loop(Looper.java:299)
    at android.app.ActivityThread.main(ActivityThread.java:8168)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1037)
)
fbernaly commented 1 month ago

@ueman : Thanks for your contribution, could you add a similar comment you added for Android but for iOS.

Also, bump the version to 0.7.2

https://github.com/flutter-ml/google_ml_kit_flutter/blob/develop/packages/google_mlkit_commons/pubspec.yaml#L3

And update CHANGELOG:

https://github.com/flutter-ml/google_ml_kit_flutter/blob/develop/packages/google_mlkit_commons/CHANGELOG.md

fbernaly commented 1 month ago

@ueman : it has been merged into develop branch, I will test with example app and release the new version ASAP

fbernaly commented 1 month ago

Thanks for the contribution