refactor: separate the create_image function
This commit is contained in:
23
src/main.rs
23
src/main.rs
@@ -3,15 +3,20 @@ use async_zip::base::read::seek::ZipFileReader;
|
|||||||
use async_zip::base::write::ZipFileWriter;
|
use async_zip::base::write::ZipFileWriter;
|
||||||
use async_zip::{Compression, ZipEntryBuilder};
|
use async_zip::{Compression, ZipEntryBuilder};
|
||||||
use infer;
|
use infer;
|
||||||
use magick_rust;
|
use magick_rust::{self, MagickError};
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::ffi::OsStr;
|
use std::ffi::OsStr;
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
use tokio::{
|
use tokio::{fs::File, io::BufReader};
|
||||||
fs::File,
|
use tokio_util::compat::TokioAsyncReadCompatExt;
|
||||||
io::BufReader,
|
|
||||||
};
|
fn compress_image(input: Vec<u8>, extension: &str) -> Result<Vec<u8>, MagickError> {
|
||||||
use tokio_util::compat::{TokioAsyncReadCompatExt };
|
let wand = magick_rust::MagickWand::new();
|
||||||
|
wand.read_image_blob(input)?;
|
||||||
|
wand.fit(1200, 1600);
|
||||||
|
wand.strip_image()?;
|
||||||
|
wand.write_image_blob(extension)
|
||||||
|
}
|
||||||
|
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
async fn main() -> std::io::Result<()> {
|
async fn main() -> std::io::Result<()> {
|
||||||
@@ -52,12 +57,8 @@ async fn main() -> std::io::Result<()> {
|
|||||||
.extension()
|
.extension()
|
||||||
.and_then(OsStr::to_str)
|
.and_then(OsStr::to_str)
|
||||||
.expect("String");
|
.expect("String");
|
||||||
|
let to_write = compress_image(buf, extension).expect("Failed to compress image");
|
||||||
println!("{}", extension);
|
println!("{}", extension);
|
||||||
let wand = magick_rust::MagickWand::new();
|
|
||||||
wand.read_image_blob(buf).expect("Successful read");
|
|
||||||
wand.fit(1200, 1600);
|
|
||||||
wand.strip_image().expect("Strip");
|
|
||||||
let to_write = wand.write_image_blob(extension).expect("Write worked");
|
|
||||||
println!("data len: {}", to_write.len());
|
println!("data len: {}", to_write.len());
|
||||||
let builder = ZipEntryBuilder::new(filename.clone(), Compression::Deflate);
|
let builder = ZipEntryBuilder::new(filename.clone(), Compression::Deflate);
|
||||||
tmp_zip
|
tmp_zip
|
||||||
|
Reference in New Issue
Block a user