Geovector 使用说明

产品/项目介绍

Sieyalix.Net

制作的原因

  1. 传统的对于图片的计算需要一定的编程基础或者只能在专业软件中使用。即使使用Python去计算,即使过程并不困难,也必须使用科学计算和图片展示库来实现,不太直观。我希望能减少中间的距离,让更多人通过以简单的方式使用或学习到相关的图片/矩阵计算处理。
  2. 这是我学习Rust后的一个实现和巩固过程,加上之前在PaleoCal项目对于Canvas的运用的基础。将Vue的响应性和Rust的高性能融合起来,非常有吸引力。而且后续即使不使用WebAssembly,则可以非常简单地迁移到Rust+前端框架的产品上(如Tauri)。

优点

  1. 占用容量小、本地可用。就如主页介绍一样,打包后整个项目(不包括图标)只占用了不到2MB。由于处理和运算是基于打包好的WebAssembly,所以使用本网站根本不会把处理图片发送出去,而是使用用户自己的设备进行处理。
  2. 功能够用。对于图片单通道(矩阵),可以快速进行加减乘除。在统计计算方面有映射、标准化。另外最重要的功能就是Padding和Conv2D(二维卷积运算,可以自定义步长、卷积核大小及卷积核的值)。尺寸方面有缩小、转置、水平和垂直反转。渲染时可以自由组合你各个颜色的通道,从而进行快速修改。往后还会增加更多算法!
  3. 快。基于RustWebAssembly,一张1920*1080的图片,渲染到主页面只使用了~260ms,如果不使用映射则会减少到~200ms。单通道的对另一通道使用矩阵加法使用~20ms(但矩阵乘法仍需要花费较长时间)、3x3卷积核的卷积运算使用~150ms。由于这些运算都在自己的机器上进行、且图片不同,速度会有差异(9代以后的处理器估计都远比这里所描述快得多)。
  4. 兼容性强。在页面布局时充分考虑到手机操作,只在少量地方进行了平台的特殊适配,因此,在手机上看到的布局会和电脑上非常相似,但又能完全使用各种功能。
  5. 后续扩展性强。因为每个通道都是封装好的数据的类型,涉及到图片处理本身的链式调用异常方便。后续会增加自定义的脚本语言进行调用。因为链式处理的优势,则可以在不解析文本为AST的情况下,也可以轻松使用脚本语言进行链式调用。因为现在都是基础操作,操作仍不太方便,后续维护时会把常用的功能的组合放到功能上,也会增加功能让大家自定义脚本语言

使用

浏览你的图片

进入主页面之后,请您点击Browse Your Image!浏览您的图片,暂时只支持PNG和JPEG(推荐PNG)进行上传。您也可以从别的软件中导出JSON,进而在本产品中加载JSON,但是JSON文件必须满足一定的构造才会被加载转移(请参考 JSON文件结构 一章)。

一旦加载完后,首页的介绍页面即会切换(因为这会直接把图片写如到WebAssembly的线性内存当中,加载需要一定时间)。您可以看到三个部分:

Main area.jpg