如何在 Flutter 中创建过滤后的图像

mar*_*lph 2 android image-processing image-editing dart flutter

我正在尝试创建一个图像过滤器,我想知道的是,是否可以将颜色过滤器应用于图像,然后保存应用了颜色过滤器的图像?如果是的话怎么办。现在我已经能够使用以下代码将滤色器应用于图像。但我们想要的是保存该图像并使其与滤色器一起显示。

Container(
  child: Stack(
    children: <Widget>[
      ColorFiltered(
        colorFilter: ColorFilter.mode(Colors.black87, BlendMode.color),
          child: Image(
            image: FileImage(
              this.images[index]
             ),
          ),
        ),
      )
    ]
  )
);
Run Code Online (Sandbox Code Playgroud)

我们需要的是某种像这样的函数,它将原始图像转换为应用了滤色器的图像。

void transformImage(String path) {
   // do something here ...
}
Run Code Online (Sandbox Code Playgroud)

小智 7

使用图像小部件,您可以进行各种操作。

    import 'dart:io';
    import 'package:image/image.dart';
    void main() {
      // Create an image
      Image image = Image(320, 240); // You can also load an image here
      
      // Fill it with a solid color (blue) OR add color filter
      fill(image, getColor(0, 0, 255));
      
      // Draw some text using 24pt arial font
      drawString(image, arial_24, 0, 0, 'Hello World');
      
      // Draw a line
      drawLine(image, 0, 0, 320, 240, getColor(255, 0, 0), thickness: 3);
      
      // Blur the image
      gaussianBlur(image, 10);
      
      // Save the image to disk as a PNG
      File('test.png').writeAsBytesSync(encodePng(image));
    }
Run Code Online (Sandbox Code Playgroud)

  • 但我似乎无法弄清楚的一件事是如何将 blendMethod 设置为 flutter BlendMode (2认同)