getImageWithPerspective method

FilterResult? getImageWithPerspective(
  1. List<Point<num>>? points,
  2. double scale
)

Implementation

FilterResult? getImageWithPerspective(
    List<Point<num>>? points, double scale) {
  if (scale <= 0) return null;

  var cacheKey = '$scale > $points';

  var imageWithPerspective = _perspectiveCache[cacheKey];

  if (imageWithPerspective == null) {
    var imageScaled = getImageScaled(scale)!;
    var imageScaledDim = getImageDimension(imageScaled);
    if (imageScaledDim == null ||
        imageScaledDim.width == 0 ||
        imageScaledDim.height == 0) {
      getImageScaled(scale);
    }

    var perspective = scalePoints(points!, scale);

    imageWithPerspective = applyPerspective(imageScaled, perspective);

    ImageScaledCache.limitEntries(
        _perspectiveCache, _maxPerspectiveCacheEntries - 1);

    _perspectiveCache[cacheKey] = imageWithPerspective;
  }

  return imageWithPerspective;
}