Add a program to generate diagram of the uncompressed bitmap

This commit is contained in:
David Tolnay
2022-05-16 14:21:05 -07:00
parent 8938e81493
commit c65813d427
4 changed files with 36 additions and 1 deletions
+1 -1
View File
@@ -6,4 +6,4 @@ edition = "2021"
publish = false
[workspace]
members = ["generate"]
members = ["diagram", "generate"]
+1
View File
@@ -0,0 +1 @@
*.png
+9
View File
@@ -0,0 +1,9 @@
[package]
name = "unicode-ident-diagram"
version = "0.0.0"
edition = "2021"
publish = false
[dependencies]
image = "0.24"
unicode-ident = { path = ".." }
+25
View File
@@ -0,0 +1,25 @@
use image::{ImageBuffer, Rgb};
use std::process;
fn main() {
let width = 512;
let height = 400;
let diagrams: [(&str, fn(char) -> bool); 2] = [
("xid_start.png", unicode_ident::is_xid_start),
("xid_continue.png", unicode_ident::is_xid_continue),
];
for (name, f) in diagrams {
let mut imgbuf = ImageBuffer::new(width, height);
for (col, row, pixel) in imgbuf.enumerate_pixels_mut() {
*pixel = if char::from_u32(row * width + col).map_or(false, f) {
Rgb([0u8, 0, 0])
} else {
Rgb([255, 255, 255])
};
}
if let Err(err) = imgbuf.save(name) {
eprintln!("Error: {}", err);
process::exit(1);
}
}
}