apskel-pos-flutter-v2/tool/generate_notification_icon.dart
2026-05-07 17:44:03 +07:00

48 lines
1.3 KiB
Dart

import 'dart:io';
import 'package:image/image.dart' as img;
/// Jalankan dengan: dart run tool/generate_notification_icon.dart
void main() async {
final inputPath = 'assets/images/logo_white.png';
final outputBase = 'android/app/src/main/res';
final sizes = {
'drawable-mdpi': 24,
'drawable-hdpi': 36,
'drawable-xhdpi': 48,
'drawable-xxhdpi': 72,
'drawable-xxxhdpi': 96,
};
final inputFile = File(inputPath);
if (!inputFile.existsSync()) {
print('ERROR: File tidak ditemukan: $inputPath');
exit(1);
}
final originalBytes = inputFile.readAsBytesSync();
final original = img.decodeImage(originalBytes);
if (original == null) {
print('ERROR: Gagal decode image');
exit(1);
}
print('Source: $inputPath (${original.width}x${original.height})');
for (final entry in sizes.entries) {
final folder = '$outputBase/${entry.key}';
final outputPath = '$folder/ic_notification.png';
Directory(folder).createSync(recursive: true);
final size = entry.value;
final resized = img.copyResize(original, width: size, height: size);
final pngBytes = img.encodePng(resized);
File(outputPath).writeAsBytesSync(pngBytes);
print('Generated: $outputPath (${size}x${size})');
}
print('\nDone! Gunakan icon: "ic_notification" di fcm_service.dart');
}