Skip to content

Commit

Permalink
Update resvg & co.
Browse files Browse the repository at this point in the history
  • Loading branch information
CosmicHorrorDev committed Nov 23, 2023
1 parent 767e3b8 commit a26509e
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 87 deletions.
121 changes: 54 additions & 67 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ html5ever = "0.26.0"
image = "0.24.7"
clap = { version = "4.3.24", features = ["cargo"] }
copypasta = "0.10.0"
resvg = "0.32.0"
usvg = "0.32.0"
tiny-skia = "0.9.1"
resvg = "0.36"
usvg = "0.36"
tiny-skia = "0.11"
anyhow = "1.0.75"
dirs = "5.0.1"
serde = { version = "1.0.193", features = ["derive"] }
Expand Down
32 changes: 15 additions & 17 deletions src/image/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -208,25 +208,23 @@ impl Image {
image
} else {
let opt = usvg::Options::default();
let mut rtree = usvg::Tree::from_data(&image_data, &opt).unwrap();
let mut fontdb = usvg::fontdb::Database::new();
fontdb.load_system_fonts();
rtree.convert_text(&fontdb);
let pixmap_size = rtree.size.to_screen_size();
let mut pixmap = tiny_skia::Pixmap::new(
(pixmap_size.width() as f32 * hidpi_scale) as u32,
(pixmap_size.height() as f32 * hidpi_scale) as u32,
)
.context("Couldn't create svg pixmap")
.unwrap();
resvg::render(
&rtree,
resvg::FitTo::Zoom(hidpi_scale),
tiny_skia::Transform::default(),
pixmap.as_mut(),
)
.context("Svg failed to render")
.unwrap();
let mut tree = usvg::Tree::from_data(&image_data, &opt).unwrap();
tree.size = tree.size.scale_to(
tiny_skia::Size::from_wh(
tree.size.width() * hidpi_scale,
tree.size.height() * hidpi_scale,
)
.unwrap(),
);
tree.convert_text(&fontdb);
let rtree = resvg::Tree::from_usvg(&tree);
let mut pixmap =
tiny_skia::Pixmap::new(rtree.size.width() as u32, rtree.size.height() as u32)
.context("Couldn't create svg pixmap")
.unwrap();
rtree.render(tiny_skia::Transform::default(), &mut pixmap.as_mut());
ImageData::new(
ImageBuffer::from_raw(pixmap.width(), pixmap.height(), pixmap.data().into())
.context("Svg buffer has invalid dimensions")
Expand Down

0 comments on commit a26509e

Please sign in to comment.