diff --git a/lib/main.dart b/lib/main.dart index 9e4deb2..47901dc 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -196,23 +196,6 @@ class _MyAppState extends State with WidgetsBindingObserver { 'dark' => ThemeMode.dark, _ => ThemeMode.system }, - locale: () { - var lang = appdata.settings['language']; - if (lang == 'system') { - return null; - } - return switch (lang) { - 'zh-CN' => const Locale('zh', 'CN'), - 'zh-TW' => const Locale('zh', 'TW'), - 'en-US' => const Locale('en'), - _ => null - }; - }(), - supportedLocales: const [ - Locale('en'), - Locale('zh', 'CN'), - Locale('zh', 'TW'), - ], builder: (context, widget) { ErrorWidget.builder = (details) { Log.error("Unhandled Exception", diff --git a/lib/utils/image.dart b/lib/utils/image.dart index 9566634..0175365 100644 --- a/lib/utils/image.dart +++ b/lib/utils/image.dart @@ -39,12 +39,12 @@ class Image { return image; } - int getPixelAtIndex(int index) { + Color getPixelAtIndex(int index) { if (index < 0 || index >= _data.length) { throw ArgumentError( 'Invalid argument: index must be in the range of [0, ${_data.length}).'); } - return _data[index]; + return Color.fromValue(_data[index]); } Image copyRange(int x, int y, int width, int height) { @@ -184,11 +184,11 @@ class Color { Color.fromValue(this.value); - int get r => (value >> 16) & 0xFF; + int get r => value & 0xFF; int get g => (value >> 8) & 0xFF; - int get b => value & 0xFF; + int get b => (value >> 16) & 0xFF; int get a => (value >> 24) & 0xFF; } diff --git a/lib/utils/pdf.dart b/lib/utils/pdf.dart index 98bf521..085ea1f 100644 --- a/lib/utils/pdf.dart +++ b/lib/utils/pdf.dart @@ -394,10 +394,10 @@ class PdfGenerator { var height = image.height; data = Uint8List(width * height * 3); for (var i = 0; i < width * height; i++) { - var pixel = image.getPixelAtIndex(i); // RGBA - data[i * 3] = pixel & 0xFF; // R - data[i * 3 + 1] = (pixel >> 8) & 0xFF; // G - data[i * 3 + 2] = (pixel >> 16) & 0xFF; // B + var pixel = image.getPixelAtIndex(i); + data[i * 3] = pixel.r; + data[i * 3 + 1] = pixel.g; + data[i * 3 + 2] = pixel.b; } data = tdeflCompressData(data, true, true, 9); return (width: width, height: height, data: data);