summaryrefslogtreecommitdiff
path: root/src/library/insert.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2020-11-30 22:07:08 +0100
committerLaurenz <laurmaedje@gmail.com>2020-11-30 22:07:08 +0100
commitfdc1b378a3eb3cf325592b801c43e2ec2478ddff (patch)
tree0e83aa07d7ec49ac494746b44869d0306f5648fe /src/library/insert.rs
parent21857064db8ca1bdf61b6e5ee37dff1a15083189 (diff)
Compress images in PDFs ⚙
Diffstat (limited to 'src/library/insert.rs')
-rw-r--r--src/library/insert.rs16
1 files changed, 4 insertions, 12 deletions
diff --git a/src/library/insert.rs b/src/library/insert.rs
index c196ce9e..a06cf170 100644
--- a/src/library/insert.rs
+++ b/src/library/insert.rs
@@ -1,9 +1,6 @@
-use std::io::Cursor;
-
-use image::io::Reader;
use image::GenericImageView;
-use crate::env::ResourceId;
+use crate::env::{ImageResource, ResourceId};
use crate::layout::*;
use crate::prelude::*;
@@ -20,15 +17,10 @@ pub fn image(mut args: Args, ctx: &mut EvalContext) -> Value {
if let Some(path) = path {
let mut env = ctx.env.borrow_mut();
- let loaded = env.resources.load(path.v, |data| {
- Reader::new(Cursor::new(data))
- .with_guessed_format()
- .ok()
- .and_then(|reader| reader.decode().ok())
- });
+ let loaded = env.resources.load(path.v, ImageResource::parse);
- if let Some((res, buf)) = loaded {
- let dimensions = buf.dimensions();
+ if let Some((res, img)) = loaded {
+ let dimensions = img.buf.dimensions();
drop(env);
ctx.push(Image {
res,