From 202cba0b74e40a1a6187aed88bf9297efd3f6939 Mon Sep 17 00:00:00 2001 From: SalOne22 <111443297+SalOne22@users.noreply.github.com> Date: Tue, 27 Jun 2023 22:19:37 +0200 Subject: [PATCH] Added optimize from memory --- src/lib.rs | 1 + src/optimize.rs | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 45f3b435..0be6e8c0 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -117,3 +117,4 @@ pub use decoder::Decoder; pub use encoder::Encoder; pub use memory_decoder::MemoryDecoder; pub use optimize::optimize; +pub use optimize::optimize_from_memory; diff --git a/src/optimize.rs b/src/optimize.rs index 7b839cf0..c9e4d890 100644 --- a/src/optimize.rs +++ b/src/optimize.rs @@ -2,7 +2,7 @@ use std::{error::Error, fs, path}; use log::info; -use crate::{Config, Decoder, Encoder}; +use crate::{image::InputFormat, Config, Decoder, Encoder, MemoryDecoder}; /// Optimizes one image with provided config pub fn optimize(image_path: &path::Path, config: &Config) -> Result, Box> { @@ -15,3 +15,15 @@ pub fn optimize(image_path: &path::Path, config: &Config) -> Result, Box Ok(e.encode()?) } + +/// Optimizes one image from memory with provided config +pub fn optimize_from_memory( + data: &[u8], + input_format: InputFormat, + config: &Config, +) -> Result, Box> { + let d = MemoryDecoder::new(data, input_format); + let e = Encoder::new(config, d.decode()?); + + Ok(e.encode()?) +}