介绍WebAssembly和WASM例子:在你的浏览器进行文件转换

查理谈科技 2024-05-09 02:16:07
WebAssembly是什么

WebAssembly ,简写WASM,是一种新的编码方式,可以在现代的网络浏览器中运行 。 WebAssembly本身是一种低级的类汇编语言,具有紧凑的二进制格式,可以接近原生的性能运行,并为诸如 C / C ++, Rust等语言提供一个编译目标,以便它们可以在 Web 上运行。它也被设计为可以与 JavaScript 共存,允许两者一起工作。

随着互联网应用的快速发展,现在几乎没有人没有使用过Web应用, 一个典型的Web应用可以被想象成拥有两个部分:

一个运行网络程序(Web app)代码——比如,给你的程序提供能力的 JavaScript——的虚拟机一系列网络程序能够调用从而控制网络浏览器/设备功能,并且能够让事物发生变化的网络 API(DOM、CSSOM、WebGL、IndexedDB、Web Audio API等)。

从历史角度讲,虚拟机过去只能加载 JavaScript。这对我们而言足够了,因为 JavaScript 足够强大从而能够解决人们在当今网络上遇到的绝大部分问题。

但是,现在的Web 应用还仅仅是用于信息的展示和简单交互;当我们试图把 JavaScript 应用到诸如 3D 游戏、虚拟现实、增强现实、计算机视觉、图像/视频编辑以及大量的要求原生性能的其他领域的时候,就会遇到了性能问题, JavaScript的处理速度遇到了瓶颈。

而且,下载、解析以及编译巨大的 JavaScript 应用程序的成本是过高的。移动平台和其他资源受限平台进一步放大了这些性能瓶颈。

正是基于这些原因, WebAssemble 开始尝试解决这个痛点。

WebAssembly 是一门不同于 JavaScript 的语言,但是,它不是用来取代 JavaScript 的。相反,它被设计为和 JavaScript 一起协同工作,从而使得网络开发者能够利用两种语言的优势:

JavaScript 是一门高级语言。对于写网络应用程序而言,它足够灵活且富有表达力。JavaScript有许多优势——它是动态类型的,不需要编译环节以及一个巨大的能够提供强大框架、库和其他工具的生态系统。WebAssembly 是一门低级的类汇编语言。它有一种紧凑的二进制格式,使其能够以接近原生性能的速度运行,并且为诸如 C++ 和 Rust 等拥有低级的内存模型语言提供了一个编译目标以便它们能够在网络上运行。(注意,WebAssembly 有一个在将来支持使用了垃圾回收内存模型的语言的高级目标。)

不同类型的代码能够按需进行相互调用——WebAssembly JavaScript API 将需要导出的 WebAssebmly 代码包裹成 JavaScript 函数,使其能够像常规 JavaScript 函数一样被调用,并且 WebAssembly 代码还可以导入并同步调用常规 JavaScript 函数。事实上,WebAssembly 代码的基本单元被称作模块,并且 WebAssembly 的模块在很多方面都和 ES 的模块是等价的。

介绍一个概念总是那么晦涩难懂, 现在来看一个WebAssembly的例子。

WebAssembly 应用的例子: 浏览器端的文件转换器

这里给大家展示的一个WebAssembly例子是文件转换器, 可以在你的浏览器上转换图片格式。

文件转换器这种应用大家是经常见到的, 基本流程就是,在浏览器页面上选择一个本地文件, 选择要转换的文件格式然后上传, 文件转换的过程是在服务器端发生的,当文件转换完成之后, 页面会提示用户从服务器下载这个文件。整个过程中, 文件转换是在服务器上进行的, 文件也会上传到服务器中。

这个WebAssembly应用的独特之处在于,文件转换是在你的浏览器上进行的, 你想要转换的源文件和目标文件,都不会传输到第三方服务器中,从而最大程度保护客户的机密信息不被窃取。

支持的格式:

应用的网址在此,值得大家去尝试:

英文界面:https://fileconverter.digital/

中文界面的应用网址:

https://fileconverter.digital/%E6%96%87%E4%BB%B6%E8%BD%AC%E6%8D%A2%E5%99%A8/

完整的文件转换列表:

转换 MPG 到 GIF转换 GIF 到 MPG转换 JPG 到 ICO转换 ICO 到 JPG转换 JPG 到 PNG转换 PNG 到 JPG转换 JPG 到 WEBP转换 WEBP 到 JPG转换 MP3 到 OGG转换 OGG 到 MP3转换 M4A 到 OGG转换 OGG 到 M4A转换 M4A 到 MP3转换 MP3 到 M4A转换 M4A 到 FLAC转换 FLAC 到 M4A转换 WEBP 到 PNG转换 PNG 到 WEBP转换 GIF 到 PNG转换 PNG 到 GIF转换 MP4 到 MOV转换 MOV 到 MP4转换 FLV 到 MP4转换 MP4 到 FLV转换 VOB 到 MP4转换 MP4 到 VOB转换 VOB 到 FLV转换 FLV 到 VOB转换 VOB 到 WEBM转换 WEBM 到 VOB转换 VOB 到 AVI转换 AVI 到 VOB转换 VOB 到 MOV转换 MOV 到 VOB转换 VOB 到 GIF转换 GIF 到 VOB转换 VOB 到 MPG转换 MPG 到 VOB转换 VOB 到 WMV转换 WMV 到 VOB转换 MKV 到 MOV转换 MOV 到 MKV转换 MKV 到 VOB转换 VOB 到 MKV转换 MKV 到 WMV转换 WMV 到 MKV转换 MKV 到 MP4转换 MP4 到 MKV转换 MKV 到 AVI转换 AVI 到 MKV转换 MKV 到 MP3转换 MP3 到 MKV转换 MKV 到 FLV转换 FLV 到 MKV转换 WEBM 到 MP3转换 MP3 到 WEBM转换 WEBM 到 AVI转换 AVI 到 WEBM转换 MOV 到 AVI转换 AVI 到 MOV转换 JPG 到 TIFF转换 TIFF 到 JPG转换 ICO 到 PNG转换 PNG 到 ICO转换 WEBM 到 MP4转换 MP4 到 WEBM转换 MOV 到 PNG转换 PNG 到 MOV转换 JPG 到 GIF转换 GIF 到 JPG转换 AVI 到 GIF转换 GIF 到 AVI转换 SWF 到 GIF转换 GIF 到 SWF转换 WEBP 到 GIF转换 GIF 到 WEBP转换 TIFF 到 PNG转换 PNG 到 TIFF转换 MOV 到 GIF转换 GIF 到 MOV转换 FLV 到 GIF转换 GIF 到 FLV转换 WEBM 到 GIF转换 GIF 到 WEBM转换 WMV 到 GIF转换 GIF 到 WMV转换 FLAC 到 WAV转换 WAV 到 FLAC转换 WEBP 到 TIFF转换 TIFF 到 WEBP转换 GIF 到 TIFF转换 TIFF 到 GIF转换 MPEG 到 GIF转换 GIF 到 MPEG转换 MPEG 到 MP4转换 MP4 到 MPEG转换 MPEG 到 MP3转换 MP3 到 MPEG转换 MPEG 到 AVI转换 AVI 到 MPEG转换 MPEG 到 VOB转换 VOB 到 MPEG转换 MPEG 到 WAV转换 WAV 到 MPEG转换 MPEG 到 WEBM转换 WEBM 到 MPEG转换 MPEG 到 FLAC转换 FLAC 到 MPEG转换 MPEG 到 FLV转换 FLV 到 MPEG转换 MPEG 到 M4A转换 M4A 到 MPEG

0 阅读:0

查理谈科技

简介:感谢大家的关注