diff --git a/lib/src/algorithms.dart b/lib/src/algorithms.dart index cb205c7..58567e5 100644 --- a/lib/src/algorithms.dart +++ b/lib/src/algorithms.dart @@ -1,4 +1,5 @@ import 'dart:math'; + import 'package:image/image.dart'; /// Abstract class for all algorithms @@ -309,7 +310,7 @@ class IMED extends DirectAlgorithm { } /// Helper function to return grayscale value of a pixel - int _grayValue(Pixel p) { + num _grayValue(Pixel p) { return getLuminanceRgb(p._red, p._green, p._blue); } @@ -660,7 +661,7 @@ class RGBAHistogram { redHist = List.filled(_binSize, 0.0); greenHist = List.filled(_binSize, 0.0); blueHist = List.filled(_binSize, 0.0); - alphaHist = List.filled(_binSize, 0.0); + alphaHist = List.filled(_binSize, 0.0); } } @@ -694,7 +695,7 @@ class ChiSquareDistanceHistogram extends HistogramAlgorithm { sum += _diff(_histograms._first.redHist, _histograms._second.redHist) + _diff(_histograms._first.greenHist, _histograms._second.greenHist) + - _diff(_histograms._first.blueHist, _histograms._second.blueHist) + + _diff(_histograms._first.blueHist, _histograms._second.blueHist) + (alphaBit * _diff(_histograms._first.alphaHist, _histograms._second.alphaHist)); return sum / (3 + alphaBit); @@ -756,7 +757,7 @@ class IntersectionHistogram extends HistogramAlgorithm { sum += _diff(_histograms._first.redHist, _histograms._second.redHist) + _diff(_histograms._first.greenHist, _histograms._second.greenHist) + - _diff(_histograms._first.blueHist, _histograms._second.blueHist) + + _diff(_histograms._first.blueHist, _histograms._second.blueHist) + (alphaBit * _diff(_histograms._first.alphaHist, _histograms._second.alphaHist)); return 1 - (sum / (3 + alphaBit)); diff --git a/lib/src/functions.dart b/lib/src/functions.dart index b9ff66d..d2693d9 100644 --- a/lib/src/functions.dart +++ b/lib/src/functions.dart @@ -1,7 +1,10 @@ -import 'algorithms.dart'; +import 'dart:typed_data'; + import 'package:image/image.dart'; import 'package:universal_io/io.dart'; +import 'algorithms.dart'; + /// Compare images from [src1] and [src2] with a specified [algorithm]. /// If [algorithm] is not specified, the default (PixelMatching()) is supplied. /// @@ -90,7 +93,7 @@ Future _getImageFromDynamic(var src) async { } else if (src is Image) { err += '$src. $src.data.length != width * height'; - if (src.height * src.width != src.data.length) { + if (src.height * src.width != src.data?.length) { throw FormatException(err); } @@ -111,7 +114,7 @@ Future _getImageFromDynamic(var src) async { Image _getValidImage(List bytes, String err) { var image; try { - image = decodeImage(bytes); + image = decodeImage(Uint8List.fromList(bytes)); } catch (Exception) { throw FormatException("Insufficient data provided to identify image."); } diff --git a/pubspec.lock b/pubspec.lock index 0e94cc2..a1f89f4 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -14,7 +14,7 @@ packages: name: collection url: "https://pub.dartlang.org" source: hosted - version: "1.15.0" + version: "1.17.0" crypto: dependency: transitive description: @@ -28,14 +28,14 @@ packages: name: image url: "https://pub.dartlang.org" source: hosted - version: "3.0.2" + version: "4.0.12" meta: dependency: transitive description: name: meta url: "https://pub.dartlang.org" source: hosted - version: "1.4.0" + version: "1.8.0" path: dependency: transitive description: @@ -56,7 +56,7 @@ packages: name: petitparser url: "https://pub.dartlang.org" source: hosted - version: "4.1.0" + version: "5.1.0" typed_data: dependency: transitive description: @@ -77,6 +77,6 @@ packages: name: xml url: "https://pub.dartlang.org" source: hosted - version: "5.1.2" + version: "6.2.2" sdks: - dart: ">=2.12.0 <3.0.0" + dart: ">=2.18.0 <3.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index 5bf0fc5..ae7e573 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -4,14 +4,14 @@ repository: https://github.com/nitinramadoss/image_compare version: 1.1.2 environment: - sdk: ">=2.12.0 <3.0.0" + sdk: ">=2.18.0 <3.0.0" dependencies: - image: ^3.0.0 - universal_io: ^2.0.0 + image: ^4.0.12 + universal_io: ^2.0.4 dev_dependencies: - pedantic: ^1.9.0 + pedantic: ^1.11.1 assets: - assets/