blob: 6ef789254b3fd065e7bc160409126523ec95161b [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'dart:math';
import 'dart:ui';
import 'package:flutter/material.dart';
///a function that checks if an image needs to be resized or not
bool imageResizeNeeded(double? maxWidth, double? maxHeight, int? imageQuality) {
return imageQuality != null
? isImageQualityValid(imageQuality)
: (maxWidth != null || maxHeight != null);
}
/// a function that checks if image quality is between 0 to 100
bool isImageQualityValid(int imageQuality) {
return (imageQuality >= 0 && imageQuality <= 100);
}
/// a function that calculates the size of the downScaled image.
/// imageWidth is the width of the image
/// imageHeight is the height of the image
/// maxWidth is the maximum width of the scaled image
/// maxHeight is the maximum height of the scaled image
Size calculateSizeOfDownScaledImage(
Size imageSize, double? maxWidth, double? maxHeight) {
double widthFactor = maxWidth != null ? imageSize.width / maxWidth : 1;
double heightFactor = maxHeight != null ? imageSize.height / maxHeight : 1;
double resizeFactor = max(widthFactor, heightFactor);
return (resizeFactor > 1 ? imageSize ~/ resizeFactor : imageSize);
}