1pub mod error;
2pub mod plain_text;
3pub mod svg;
4pub mod ts_arrangement;
5
6pub fn svg_to_png(svg_in: &[u8], zoom: f32) -> Vec<u8> {
7 log::info!("Converting SVG to PNG");
8
9 let svg = resvg::usvg::Tree::from_data(svg_in, &Default::default()).unwrap();
10
11 let raster_image_size = svg.size();
12 let raster_image_width = (raster_image_size.width().ceil() * zoom) as u32;
13 let raster_image_height = (raster_image_size.height().ceil() * zoom) as u32;
14 log::info!("PNG size: {raster_image_width}x{raster_image_height}",);
15
16 let mut raster_image =
17 resvg::tiny_skia::Pixmap::new(raster_image_width, raster_image_height).unwrap();
18 resvg::render(
19 &svg,
20 resvg::usvg::Transform::from_scale(zoom, zoom),
21 &mut raster_image.as_mut(),
22 );
23 raster_image.encode_png().unwrap()
24}