changeSize method

Future<Image> changeSize({
  1. int? imgW,
  2. int? imgH,
  3. bool isDispose = false,
})

Resize an image asynchronously.

Implementation

Future<Image> changeSize({
  int? imgW,
  int? imgH,
  bool isDispose = false,
}) {
  final int imgW0 = imgW ?? width;
  final int imgH0 = imgH ?? height;
  final Rect rect = Offset.zero & Size(imgW0 * 1, imgH0 * 1);
  final PictureRecorder pictureRecorder = PictureRecorder();
  final Canvas canvas = Canvas(pictureRecorder, rect);
  canvas.drawImageRect(this, Offset.zero & size, rect,
      Paint()..filterQuality = FilterQuality.high);
  final Picture picture = pictureRecorder.endRecording();
  if (isDispose) dispose();
  return picture.toImage(imgW0, imgH0);
}