抖动的图像处理导致像素化

时间:2020-04-16 12:32:09

标签: flutter image-processing dart

正在进行一个抖动项目,该项目需要拍照并重新调整大小/裁剪图像到640/420(15:10),然后再上传到服务器,但是它们似乎失去了太多的质量并且像素化。

      img.Image image = img.decodeImage(a2);
      double width = (image.height / 10) * 15;
      image = img.copyCrop(image, ((image.width - width) / 2).round(), 0, width.round(), image.height);
      resized = img.encodeJpg(img.copyResize(image, width:640, interpolation: img.Interpolation.cubic));

当前使用camera进行720p(1280x720)拍摄,并使用image插件进行裁剪并使用平均插值调整大小。

我主要是想知道这是处理图像处理以保持最高质量的最佳方法,还是针对此用例是否有更好的方法。

1 个答案:

答案 0 :(得分:0)

您应该尝试此方法,我一直在为自己使用以下方法,它的作用就像魅力一样,图像也不会损失任何质量,并且尺寸也压缩得太

mkdir -p /var/lib/docker/volumes/volume_name/_data/testdir

上述方法用于压缩图像,并用于从图库/相机捕获图像,我正在使用以下方法。

final _tempDir = await getTemporaryDirectory();
    final _path = _tempDir.path;
    im.Image imageFile = im.decodeImage(_file.readAsBytesSync());
    mealID = Uuid().v4();
    final compressedImageFile = File('$_path/img_$mealID.jpg')
      ..writeAsBytesSync(im.encodeJpg(imageFile, quality: 80));
    setState(() {
      _file = compressedImageFile;
    });