mirror of
https://github.com/vodemn/m3_lightmeter.git
synced 2024-11-22 07:20:39 +00:00
added standalone script to update screenshots
This commit is contained in:
parent
892c061633
commit
2540aa9364
2 changed files with 60 additions and 0 deletions
|
@ -44,6 +44,7 @@ dependencies:
|
|||
vibration: 1.8.1
|
||||
|
||||
dev_dependencies:
|
||||
args: 2.5.0
|
||||
bloc_test: 9.1.3
|
||||
build_runner: 2.4.6
|
||||
flutter_native_splash: 2.3.5
|
||||
|
@ -55,6 +56,7 @@ dev_dependencies:
|
|||
integration_test:
|
||||
sdk: flutter
|
||||
lint: 2.1.2
|
||||
logging: 1.2.0
|
||||
meta: 1.9.1
|
||||
mocktail: 0.3.0
|
||||
test: 1.24.3
|
||||
|
|
58
screenshots/main.dart
Normal file
58
screenshots/main.dart
Normal file
|
@ -0,0 +1,58 @@
|
|||
import 'dart:io';
|
||||
import 'dart:typed_data';
|
||||
|
||||
import 'package:args/args.dart';
|
||||
import 'package:image/image.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
|
||||
import 'convert_to_store_screenshot.dart';
|
||||
import 'models/screenshot_args.dart';
|
||||
import 'models/screenshot_layout.dart';
|
||||
|
||||
Future<int> main(List<String> args) async {
|
||||
final parser = ArgParser()
|
||||
..addFlag('verbose', abbr: 'v', help: 'Verbose output.')
|
||||
..addOption('platform', abbr: 'p', help: 'Device platform.', mandatory: true)
|
||||
..addOption('device', abbr: 'd', help: 'device_snake_name', mandatory: true);
|
||||
final ArgResults argResults = parser.parse(args);
|
||||
|
||||
if (argResults['verbose'] as bool) {
|
||||
Logger.root.level = Level.ALL;
|
||||
} else {
|
||||
Logger.root.level = Level.INFO;
|
||||
}
|
||||
|
||||
final device = argResults["device"] as String;
|
||||
final platform = argResults["platform"] as String;
|
||||
Directory('screenshots/generated/raw/$platform/$device').listSync().forEach((filePath) async {
|
||||
final screenshotName = filePath.path.split('/').last.replaceAll('.png', '');
|
||||
final screenshotBytes = File(filePath.path).readAsBytesSync();
|
||||
final screenshot = decodePng(Uint8List.fromList(screenshotBytes))!;
|
||||
final topLeftPixel = screenshot.getPixel(0, 0);
|
||||
|
||||
final screenshotArgs = ScreenshotArgs(
|
||||
name: screenshotName,
|
||||
deviceName: device,
|
||||
platformFolder: platform,
|
||||
backgroundColor: (
|
||||
r: topLeftPixel.r.toInt(),
|
||||
g: topLeftPixel.g.toInt(),
|
||||
b: topLeftPixel.b.toInt(),
|
||||
a: topLeftPixel.a.toInt(),
|
||||
),
|
||||
isDark: filePath.path.contains('dark-'),
|
||||
);
|
||||
|
||||
final file = await File(filePath.path.replaceAll('/raw', '')).create(recursive: true);
|
||||
file.writeAsBytesSync(
|
||||
encodePng(
|
||||
screenshot.convertToStoreScreenshot(
|
||||
args: screenshotArgs,
|
||||
layout: ScreenshotLayout.iphone65inch,
|
||||
),
|
||||
),
|
||||
);
|
||||
});
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in a new issue