generateAssets method

void generateAssets(
  1. {required String inputImagePath,
  2. required String imageToSaveDirectoryName}
)

Implementation

void generateAssets({
  required String inputImagePath,
  required String imageToSaveDirectoryName,
}) {
  try {
    final File inputFile = File(inputImagePath);
    String inputFileName = basename(inputFile.path);

    final Image? image = decodeImage(inputFile.readAsBytesSync());

    if (image == null) {
      Utility.errorPrinter(text: '$kError $kImageDecodingErrorMessage');
      return;
    }

    /// Generate 1x image
    String oneXDirPath = "$kAssetsImagesPath$imageToSaveDirectoryName";
    Utility.createFolder(path: oneXDirPath);
    final Image image1x = copyResize(
      image,
      width: image.width ~/ 3,
      height: image.height ~/ 3,
    );
    File('$oneXDirPath/$inputFileName').writeAsBytesSync(
      encodePng(image1x),
    );

    /// Generate 2x image
    String twoXDirPath =
        "$kAssetsImagesPath$imageToSaveDirectoryName$kImageTwoX";
    Utility.createFolder(path: twoXDirPath);
    final Image image2x = copyResize(
      image,
      width: image.width ~/ 1.5,
      height: image.width ~/ 1.5,
    );
    File('$twoXDirPath/$inputFileName').writeAsBytesSync(
      encodePng(image2x),
    );

    /// Generate 3x image
    String threeXDirPath =
        "$kAssetsImagesPath$imageToSaveDirectoryName$kImageThreeX";
    Utility.createFolder(path: threeXDirPath);
    File('$threeXDirPath/$inputFileName').writeAsBytesSync(
      encodePng(image),
    );

    Utility.successPrinter(text: kImageGeneratedSuccessMessage);
  } catch (e) {
    Utility.errorPrinter(text: '$kError $e');
    exit(1);
  }
}