小编Bor*_*ris的帖子

CustomPainter中画布drawImage缩放高度和宽度

我正在 Flutter 中开发一个应用程序,其中使用 CustomPainter 绘制用户从图库/相机中选择的图像。除此之外,用户还可以绘制线条以及更改笔划值、不透明度颜色和本身的颜色。为此,我创建了 2 个类 DrawEditor 和 DrawingPainter,这两个类的代码可以在下面找到。一旦用户选择了图像,图像就会传递到 DrawingPainter 类,在该类中调用 Paint() 并绘制线条和图像。问题出在 _paintBackgroundImage() 中,在此方法中我使用 canvas.drawImage(paintedImage, Offset.zero, Paint()); 绘制图像 它不会缩放图像。

早些时候,我尝试了一种不同的方法,而不是使用 canvas.drawImage(paintedImage, Offset.zero, Paint()) 绘制图像,而是使用 canvas.drawImageRect(paintedImage, inputSubRect, outputSubRect, Paint()); 如下所示。然而,使用这种方法,绘制图片是像素化的,所以我更喜欢 canvas.drawImage(paintedImage, Offset.zero, Paint()) 因为这不会损坏图片。

任何有关缩放图像的帮助将不胜感激。

  //Example 1 : Code with canvas.drawImageRect but image pixelated
   final UI.Rect rect = UI.Offset.zero & _canvasSize;
       final Size imageSize =Size(paintedImage.width.toDouble(),      paintedImage.height.toDouble());
    FittedSizes sizes = applyBoxFit(BoxFit.contain, imageSize, _canvasSize);
    final Rect inputSubRect =
    Alignment.center.inscribe(sizes.source, Offset.zero & imageSize);
final Rect outputSubRect =
    Alignment.center.inscribe(sizes.destination, rect);

canvas.drawImageRect(paintedImage, inputSubRect, outputSubRect, …
Run Code Online (Sandbox Code Playgroud)

canvas image draw flutter

8
推荐指数
1
解决办法
8995
查看次数

标签 统计

canvas ×1

draw ×1

flutter ×1

image ×1