diff --git a/kits/flutter_ume_kit_ui/CHANGELOG.md b/kits/flutter_ume_kit_ui/CHANGELOG.md index c8c5ec6..a96df82 100644 --- a/kits/flutter_ume_kit_ui/CHANGELOG.md +++ b/kits/flutter_ume_kit_ui/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## 1.1.1 + +* image: ^3.0.5 升级到 image: ^4.0.15 +* quiver: ^3.0.1 升级到 quiver: ^3.2.1 +* mockito: ^5.0.12 升级到 mockito: ^5.3.2 + +* Bump image from 3.0.5 to 4.0.15 +* Bump quiver from 3.0.1 to 3.2.1 +* Bump mockito from 5.0.12 to 5.3.2 + + ## 1.1.0 * 适配 Flutter 3.7,不兼容旧版本的适配 diff --git a/kits/flutter_ume_kit_ui/lib/components/color_sucker/color_sucker.dart b/kits/flutter_ume_kit_ui/lib/components/color_sucker/color_sucker.dart index 09f20a8..2886426 100644 --- a/kits/flutter_ume_kit_ui/lib/components/color_sucker/color_sucker.dart +++ b/kits/flutter_ume_kit_ui/lib/components/color_sucker/color_sucker.dart @@ -129,15 +129,11 @@ class _ColorSuckerState extends State { if (_snapshot == null) return; double px = globalPosition.dx; double py = globalPosition.dy; - int pixel32 = _snapshot!.getPixelSafe(px.toInt(), py.toInt()); - int hex = _abgrToArgb(pixel32); - _currentColor = Color(hex); - } - int _abgrToArgb(int argbColor) { - int r = (argbColor >> 16) & 0xFF; - int b = argbColor & 0xFF; - return (argbColor & 0xFF00FF00) | (b << 16) | r; + img.Pixel pixel = _snapshot!.getPixelSafe(px.toInt(), py.toInt()); + + _currentColor = Color.fromARGB( + pixel.a.toInt(), pixel.r.toInt(), pixel.g.toInt(), pixel.b.toInt()); } @override diff --git a/kits/flutter_ume_kit_ui/lib/third_party/cyclop/lib/src/utils.dart b/kits/flutter_ume_kit_ui/lib/third_party/cyclop/lib/src/utils.dart index 4359eaf..8487412 100644 --- a/kits/flutter_ume_kit_ui/lib/third_party/cyclop/lib/src/utils.dart +++ b/kits/flutter_ume_kit_ui/lib/third_party/cyclop/lib/src/utils.dart @@ -1,10 +1,8 @@ import 'dart:ui' as ui; -import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:image/image.dart' as img; - //bool get isPhoneScreen => !(screenSize.shortestSide >= 600); Size get screenSize => ui.window.physicalSize / ui.window.devicePixelRatio; @@ -92,36 +90,32 @@ List getPixelColors( ), ); -Color getPixelColor(img.Image image, Offset offset) => (offset.dx >= 0 && - offset.dy >= 0 && - offset.dx < image.width && - offset.dy < image.height) - ? abgr2Color(image.getPixel(offset.dx.toInt(), offset.dy.toInt())) - : const Color(0x00000000); +ui.Color getPixelColor(img.Image image, Offset offset) { + img.Pixel pixel = image.getPixelSafe(offset.dx.toInt(), offset.dy.toInt()); + + return (offset.dx >= 0 && + offset.dy >= 0 && + offset.dx < image.width && + offset.dy < image.height) + ? Color.fromARGB( + pixel.a.toInt(), pixel.r.toInt(), pixel.g.toInt(), pixel.b.toInt()) + : const Color(0x00000000); +} ui.Offset _offsetFromIndex(int index, int numColumns) => Offset( (index % numColumns).toDouble(), ((index ~/ numColumns) % numColumns).toDouble(), ); -Color abgr2Color(int value) { - final a = (value >> 24) & 0xFF; - final b = (value >> 16) & 0xFF; - final g = (value >> 8) & 0xFF; - final r = (value >> 0) & 0xFF; - - return Color.fromARGB(a, r, g, b); -} - Future repaintBoundaryToImage( RenderRepaintBoundary renderer, ) async { try { final rawImage = await renderer.toImage(pixelRatio: 1); - final byteData = - await rawImage.toByteData(format: ui.ImageByteFormat.rawRgba); + final byteData = await rawImage.toByteData(format: ui.ImageByteFormat.png); final pngBytes = byteData!.buffer.asUint8List(); - return img.Image.fromBytes(rawImage.width, rawImage.height, pngBytes); + + return img.decodeImage(pngBytes); } catch (err) { return null; } diff --git a/kits/flutter_ume_kit_ui/lib/third_party/cyclop/lib/src/widgets/eyedrop/eye_dropper_layer.dart b/kits/flutter_ume_kit_ui/lib/third_party/cyclop/lib/src/widgets/eyedrop/eye_dropper_layer.dart index dee12a2..f02698f 100644 --- a/kits/flutter_ume_kit_ui/lib/third_party/cyclop/lib/src/widgets/eyedrop/eye_dropper_layer.dart +++ b/kits/flutter_ume_kit_ui/lib/third_party/cyclop/lib/src/widgets/eyedrop/eye_dropper_layer.dart @@ -1,6 +1,5 @@ import 'dart:ui'; -import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:image/image.dart' as img; diff --git a/kits/flutter_ume_kit_ui/lib/third_party/cyclop/pubspec.yaml b/kits/flutter_ume_kit_ui/lib/third_party/cyclop/pubspec.yaml index 251b854..d08dc7a 100644 --- a/kits/flutter_ume_kit_ui/lib/third_party/cyclop/pubspec.yaml +++ b/kits/flutter_ume_kit_ui/lib/third_party/cyclop/pubspec.yaml @@ -9,13 +9,13 @@ environment: dependencies: flutter: sdk: flutter - image: ^3.0.5 - quiver: ^3.0.1 - basics: ^0.6.0 + image: ^4.0.15 + quiver: ^3.2.1 + basics: ^0.10.0 dev_dependencies: flutter_test: sdk: flutter - flutter_lints: ^1.0.4 + flutter_lints: ^2.0.1 flutter: diff --git a/kits/flutter_ume_kit_ui/pubspec.yaml b/kits/flutter_ume_kit_ui/pubspec.yaml index 8297e11..3e9284a 100644 --- a/kits/flutter_ume_kit_ui/pubspec.yaml +++ b/kits/flutter_ume_kit_ui/pubspec.yaml @@ -1,6 +1,6 @@ name: flutter_ume_kit_ui description: UI Kits for flutter_ume. -version: 1.1.0 +version: 1.1.1 homepage: https://github.com/bytedance/flutter_ume environment: @@ -14,14 +14,14 @@ dependencies: touch_indicator: ^2.0.0 # for Cyclop - image: ^3.0.5 - quiver: ^3.0.1 + image: ^4.0.15 + quiver: ^3.2.1 basics: ">=0.6.0 <0.11.0" dev_dependencies: flutter_test: sdk: flutter - mockito: ^5.0.12 + mockito: ^5.3.2 flutter_coverage_badge: git: url: https://github.com/smileShirely/flutter_coverage_badge.git