使用Dart进行图像处理–第1部分

如今,Dart似乎已经成为了即将到来的冉冉升起的超级巨星,并​​得到了Google抖动框架的支持。 因此,我决定尝试一下并学习香草Dart。 在完成Mafinar Khan的“ Hello World Dirt”仪式之后。 决定尝试使用Dart进行图像处理。 作为python爱好者,我最熟悉openCV图像处理。 因此,在接下来的部分中,我们将尝试使用Dart实现一些openCV图像处理。

如果您是像我这样的飞镖新手,最好学习安装其他专业开发人员喜欢的软件包。 因此Dart具有发布包管理器,可用于在您的项目上安装包。 过程非常简单:

  1. 将软件包名称添加到软件包的pubspec.yaml文件中:
 依赖项:图片:^ 2.0.5 

pubspec.yaml文件将包含项目的所有依赖项列表。

我正在安装名为“ image 的软件包 这将帮助我读写任何图像文件格式的图像文件。

2.在终端上运行以下命令(在项目根目录中打开)

酒馆得到

这将允许pub安装在pubspec.yaml文件中找到的所有项目依赖项。

图像处理的第一步是读取存储在文件系统上的图像文件。

因此,让我们将已安装的软件包导入到我们的代码中

 导入'package:image / image.dart'; 

我们还需要导入一个名为dart:io的默认dart包,以读取文件。

 将'dart:io'导入为Io; 

现在,让我们用Io读取图像文件并将图像值保存为字节。 各种程序包和库都可以使用此字节值将其转换为自己的类型。 openCV将接受此字节值作为图像。 但是我们将在本系列的后续部分介绍openCV。

  //以字节为单位读取文件 
//您还可以使用其他文件格式,例如jpeg,webp,TIFF,PSD,GIF
var imageFile = new Io.File('test.png')。readAsBytesSync();

然后将另存为字节的图像解码为图像对象。 图像包将使用它。 该程序包需要将图像转换为它定义的图像对象。

  // encodeImage可以识别图像的格式, 
//相应地解码图像
图像图像= encodeImage(imageFile);

由于图像现在是图像对象,因此我们可以使用以下方法来调整图像的大小

  //调整图片大小 
图片缩略图= copyResize(image,120);

现在让我们将调整大小的图像另存为png文件

  //将调整大小后的图像另存为png 
//也可以另存为jpeg,gif,
新的Io.File('thumbnail.png')。writeAsBytesSync(encodePng(thumbnail));

最后看起来像这样

现在使用以下代码运行代码:

pub run bin / main.dart

由于我已经在main.dart文件中编写了所有代码。 我正在执行此测试。 将测试映像保留在项目的根目录中(不在bin文件夹中,与pubspec.yaml文件位于同一文件夹中),以便正确运行它。

此git repo将包含此职位和本系列后续职位的所有代码。