From eb1315d232c75a1ae2ae41909c75f7ec38a338d6 Mon Sep 17 00:00:00 2001 From: Prateek Sunal Date: Fri, 27 Sep 2024 00:11:40 +0530 Subject: [PATCH] fix: really resize the image --- .../appimage/app_package_maker_appimage.dart | 27 +++++++++++-------- .../src/makers/deb/app_package_maker_deb.dart | 26 +++++++++++------- .../pacman/app_package_maker_pacman.dart | 26 +++++++++++------- packages/flutter_app_packager/pubspec.yaml | 1 + 4 files changed, 49 insertions(+), 31 deletions(-) diff --git a/packages/flutter_app_packager/lib/src/makers/appimage/app_package_maker_appimage.dart b/packages/flutter_app_packager/lib/src/makers/appimage/app_package_maker_appimage.dart index 439d3671..8c63d566 100644 --- a/packages/flutter_app_packager/lib/src/makers/appimage/app_package_maker_appimage.dart +++ b/packages/flutter_app_packager/lib/src/makers/appimage/app_package_maker_appimage.dart @@ -2,6 +2,7 @@ import 'dart:io'; import 'package:flutter_app_packager/src/api/app_package_maker.dart'; import 'package:flutter_app_packager/src/makers/appimage/make_appimage_config.dart'; +import 'package:image/image.dart' as img; import 'package:path/path.dart' as path; import 'package:shell_executor/shell_executor.dart'; @@ -135,19 +136,23 @@ class AppPackageMakerAppImage extends AppPackageMaker { } }); - await iconFile.copy( - path.join( - icon128x128, - '${makeConfig.appName}${path.extension(makeConfig.icon)}', - ), + final icon128 = img.copyResize( + img.decodeImage(iconFile.readAsBytesSync())!, + width: 128, + height: 128, ); - - await iconFile.copy( - path.join( - icon256x256, - '${makeConfig.appName}${path.extension(makeConfig.icon)}', - ), + final icon128File = + File(path.join(icon128x128, '${makeConfig.appBinaryName}.png')); + await icon128File.writeAsBytes(img.encodePng(icon128)); + + final icon256 = img.copyResize( + img.decodeImage(iconFile.readAsBytesSync())!, + width: 128, + height: 128, ); + final icon256File = + File(path.join(icon256x256, '${makeConfig.appBinaryName}.png')); + await icon256File.writeAsBytes(img.encodePng(icon256)); if (makeConfig.metainfo != null) { final metainfoDir = path.join( diff --git a/packages/flutter_app_packager/lib/src/makers/deb/app_package_maker_deb.dart b/packages/flutter_app_packager/lib/src/makers/deb/app_package_maker_deb.dart index b2e80929..d8bb24f3 100644 --- a/packages/flutter_app_packager/lib/src/makers/deb/app_package_maker_deb.dart +++ b/packages/flutter_app_packager/lib/src/makers/deb/app_package_maker_deb.dart @@ -2,6 +2,7 @@ import 'dart:io'; import 'package:flutter_app_packager/src/api/app_package_maker.dart'; import 'package:flutter_app_packager/src/makers/deb/make_deb_config.dart'; +import 'package:image/image.dart' as img; import 'package:path/path.dart' as path; import 'package:shell_executor/shell_executor.dart'; @@ -77,18 +78,23 @@ class AppPackageMakerDeb extends AppPackageMaker { throw MakeError("provided icon ${makeConfig.icon} path wasn't found"); } - await iconFile.copy( - path.join( - icon128Dir, - makeConfig.appBinaryName + path.extension(makeConfig.icon!), - ), + final icon128 = img.copyResize( + img.decodeImage(iconFile.readAsBytesSync())!, + width: 128, + height: 128, ); - await iconFile.copy( - path.join( - icon256Dir, - makeConfig.appBinaryName + path.extension(makeConfig.icon!), - ), + final icon128File = + File(path.join(icon128Dir, '${makeConfig.appBinaryName}.png')); + await icon128File.writeAsBytes(img.encodePng(icon128)); + + final icon256 = img.copyResize( + img.decodeImage(iconFile.readAsBytesSync())!, + width: 128, + height: 128, ); + final icon256File = + File(path.join(icon256Dir, '${makeConfig.appBinaryName}.png')); + await icon256File.writeAsBytes(img.encodePng(icon256)); } if (makeConfig.metainfo != null) { final metainfoPath = diff --git a/packages/flutter_app_packager/lib/src/makers/pacman/app_package_maker_pacman.dart b/packages/flutter_app_packager/lib/src/makers/pacman/app_package_maker_pacman.dart index 400f492d..7096f0a5 100644 --- a/packages/flutter_app_packager/lib/src/makers/pacman/app_package_maker_pacman.dart +++ b/packages/flutter_app_packager/lib/src/makers/pacman/app_package_maker_pacman.dart @@ -2,6 +2,7 @@ import 'dart:io'; import 'package:flutter_app_packager/src/api/app_package_maker.dart'; import 'package:flutter_app_packager/src/makers/pacman/make_pacman_config.dart'; +import 'package:image/image.dart' as img; import 'package:path/path.dart' as path; import 'package:shell_executor/shell_executor.dart'; @@ -74,18 +75,23 @@ class AppPackageMakerPacman extends AppPackageMaker { throw MakeError("provided icon ${makeConfig.icon} path wasn't found"); } - await iconFile.copy( - path.join( - icon128Dir, - makeConfig.appBinaryName + path.extension(makeConfig.icon!), - ), + final icon128 = img.copyResize( + img.decodeImage(iconFile.readAsBytesSync())!, + width: 128, + height: 128, ); - await iconFile.copy( - path.join( - icon256Dir, - makeConfig.appBinaryName + path.extension(makeConfig.icon!), - ), + final icon128File = + File(path.join(icon128Dir, '${makeConfig.appBinaryName}.png')); + await icon128File.writeAsBytes(img.encodePng(icon128)); + + final icon256 = img.copyResize( + img.decodeImage(iconFile.readAsBytesSync())!, + width: 128, + height: 128, ); + final icon256File = + File(path.join(icon256Dir, '${makeConfig.appBinaryName}.png')); + await icon256File.writeAsBytes(img.encodePng(icon256)); } if (makeConfig.metainfo != null) { final metainfoPath = diff --git a/packages/flutter_app_packager/pubspec.yaml b/packages/flutter_app_packager/pubspec.yaml index a60dd4bf..ebf58a86 100644 --- a/packages/flutter_app_packager/pubspec.yaml +++ b/packages/flutter_app_packager/pubspec.yaml @@ -8,6 +8,7 @@ environment: dependencies: archive: ^3.6.1 + image: ^4.2.0 io: ^1.0.3 liquid_engine: ^0.2.2 msix: ^3.16.6