【Rust基础】使用Rust和WASM开发的图片压缩工具

图片压缩工具

使用rust+wasm开发了一个简易版的图片压缩工具,支持JPG、PNG、GIF、WEBP等图片格式,不限制大小,无需上传图片,完全在浏览器中执行。

工具地址:https://eai.coderbox.cn/image-compression

实现方式

  • JPEG

    对原图进行量化,通过指定质量参数,控制压缩质量。

  • PNG

    同样的进行量化,并重新将rgba颜色(如果原图是rgba)调整为8位索引颜色,最后对图片重新编码。

  • WEP

    同JPEG

  • GIF

    提取原图帧后进行量化压缩,帧率和原图保持一致,最后重新编码图片。

使用Rust开发WASM

  • 安装wasm-pack

    shell 复制代码
    cargo install wasm-pack
  • Cargo.toml中添加依赖wasm-bindgen = "0.2"

  • 通过#[wasm_bindgen]暴露出接口给js调用

  • 编译

    shell 复制代码
    wasm-pack build --target web
相关推荐
小浣熊熊熊熊熊熊熊丶1 天前
《Effective Java》第25条:限制源文件为单个顶级类
java·开发语言·effective java
啃火龙果的兔子1 天前
JDK 安装配置
java·开发语言
星哥说事1 天前
应用程序监控:Java 与 Web 应用的实践
java·开发语言
等....1 天前
Miniconda使用
开发语言·python
zfj3211 天前
go为什么设计成源码依赖,而不是二进制依赖
开发语言·后端·golang
醇氧1 天前
org.jetbrains.annotations的@Nullable 学习
java·开发语言·学习·intellij-idea
Java&Develop1 天前
Aes加密 GCM java
java·开发语言·python
weixin_462446231 天前
使用 Go 实现 SSE 流式推送 + 打字机效果(模拟 Coze Chat)
开发语言·后端·golang
JIngJaneIL1 天前
基于springboot + vue古城景区管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
敲敲了个代码1 天前
隐式类型转换:哈基米 == 猫 ? true :false
开发语言·前端·javascript·学习·面试·web