6次发布

0.2.3 2024年7月23日
0.2.2 2024年7月9日
0.2.1 2024年2月26日
0.2.0 2023年9月19日
0.1.1 2019年7月12日

#111 in 算法

Download history 1126/week @ 2024-04-28 912/week @ 2024-05-05 1518/week @ 2024-05-12 1667/week @ 2024-05-19 1098/week @ 2024-05-26 1556/week @ 2024-06-02 1557/week @ 2024-06-09 1342/week @ 2024-06-16 1395/week @ 2024-06-23 940/week @ 2024-06-30 1953/week @ 2024-07-07 1156/week @ 2024-07-14 1469/week @ 2024-07-21 1558/week @ 2024-07-28 794/week @ 2024-08-04 1121/week @ 2024-08-11

5,018次每月下载
用于 6 个crate(5 个直接使用)

Apache-2.0/MIT

215KB
644

blurhash-rs

CI Build Crates.io Crates.io

Blurhash 的纯Rust实现。

Blurhash是由Dag ÅgrenWolt (woltapp/blurhash)编写的算法,将图像编码为短(约20-30字节)的ASCII字符串。当你将字符串解码回图像时,你会得到代表原始图像的颜色渐变。这可以在你需要图像占位符或甚至对图像内容进行审查的Mastodon等场景中使用。

🚴 使用方法

blurhash 添加到你的 Cargo.toml

[dependencies]
blurhash = "0.2.3"

默认情况下,启用了 fast-linear-to-srgb。这通过大约60%的解码性能改进,但会有8KB的内存开销。如果这个开销有问题,你可以在 Cargo.toml 中指定以下内容来禁用它

[dependencies]
blurhash = { version = "0.2.3", default-features = false }

编码

use blurhash::encode;
use image::GenericImageView;

fn main() {
  // Add image to your Cargo.toml
  let img = image::open("octocat.png").unwrap();
  let (width, height) = img.dimensions();
  let blurhash = encode(4, 3, width, height, &img.to_rgba().into_vec());
}

解码

use blurhash::decode;

let pixels = decode("LBAdAqof00WCqZj[PDay0.WB}pof", 50, 50, 1.0);

许可

许可方式为以下之一

依赖

~0–8.5MB
~71K SLoC