Тема: Збереження гліфа зі шрифту ttf в якості png файлу
Потрібно зберегти гліф зі шрифту в якості png файлу.
Намагаюся зробити це ось так:
use fontdue;
use image;
use std::path::Path;
fn main() {
let font = include_bytes!(
"Шрифти/612KosheyLinePL-Bold - 612KosheyLinePL - Bold.ttf") as &[u8];
let font = fontdue::Font::from_bytes(
font, fontdue::FontSettings::default()).unwrap();
let (metrics, bitmap) = font.rasterize('ґ', 17.0);
let image_width: u32 = metrics.width.try_into().unwrap();
let image_height: u32 = metrics.height.try_into().unwrap();
println!("Image width: {}, image height: {}", image_width, image_height);
image::save_buffer(&Path::new("image.png"),
&bitmap, image_width, image_height, image::ExtendedColorType::Rgba8)
.expect("Can't save png image.");
}
Але отримую помилку:
thread 'main' panicked at .cargo/registry/src/index.crates.io-6f17d22bba15001f/image-0.25.1/src/io/free_functions.rs:69:50:
assertion `left == right` failed: Invalid buffer length: expected 384 got 96 for 8x12 image
left: 384
right: 96
bitmap — це Vec<u8>, save_buffer вимагає &[u8].
Розумію, що формати не збігаються, але не знаю, що з цим робити.