generateImageThumbnailFromBinary method

  1. @override
Uint8List? generateImageThumbnailFromBinary(
  1. Uint8List imageBytes
)
override

Implementation

@override
Uint8List? generateImageThumbnailFromBinary(
  Uint8List imageBytes,
) {
  try {
    final image = decodeImage(imageBytes);

    const int maxSize = 300;
    bool isWidthDominant = image!.width > image.height;
    if (isWidthDominant && image.width <= maxSize) return imageBytes;
    if (!isWidthDominant && image.height <= maxSize) return imageBytes;

    double aspectRatio =
        isWidthDominant ? image.width / image.height : image.height / image.width;
    int resizeWidth = isWidthDominant ? maxSize : (maxSize / aspectRatio).round();
    int resizeHeight = isWidthDominant ? (maxSize / aspectRatio).round() : maxSize;

    return resizeImage(imageBytes, resizeWidth, resizeHeight);
  } catch (err) {
    logger.severe('Error at StorageUtilImpl.generateImageThumbnail >>> $err');
    return null;
  }
}