From 4af52c74fb3a0b511137998f416988645f958307 Mon Sep 17 00:00:00 2001 From: sxyazi Date: Mon, 17 Jul 2023 00:00:26 +0800 Subject: [PATCH] fix: image format --- src/core/tasks/precache.rs | 8 +++----- src/core/tasks/process.rs | 11 ++++++++++- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/core/tasks/precache.rs b/src/core/tasks/precache.rs index ec998a37..a95d1ba4 100644 --- a/src/core/tasks/precache.rs +++ b/src/core/tasks/precache.rs @@ -1,7 +1,7 @@ use std::path::{Path, PathBuf}; use anyhow::Result; -use image::imageops::FilterType; +use image::{imageops::FilterType, ImageFormat}; use tokio::{fs, sync::mpsc}; use super::TaskOp; @@ -68,10 +68,8 @@ impl Precache { }; let (w, h) = (PREVIEW.max_width, PREVIEW.max_height); - if img.width() <= w && img.height() <= h { - img.save(cache).ok(); - } else { - img.resize(w, h, FilterType::Triangle).save(cache).ok(); + if img.width() > w || img.height() > h { + img.resize(w, h, FilterType::Triangle).save_with_format(&cache, ImageFormat::Jpeg).ok(); } self.sch.send(TaskOp::Adv(task.id, 1, 0))?; } diff --git a/src/core/tasks/process.rs b/src/core/tasks/process.rs index 7873b2c1..3f4d3efa 100644 --- a/src/core/tasks/process.rs +++ b/src/core/tasks/process.rs @@ -1,3 +1,5 @@ +use std::process::Stdio; + use anyhow::Result; use tokio::{process::Command, select, sync::{mpsc, oneshot}}; use tracing::trace; @@ -44,9 +46,16 @@ impl Process { ProcessOp::Open(task) => { trace!("Open task: {:?}", task); if !task.block { + let status = Command::new(&task.cmd) + .args(&task.args) + .stdout(Stdio::null()) + .stderr(Stdio::null()) + .kill_on_drop(true) + .status(); + select! { _ = task.cancel.closed() => {}, - Ok(status) = Command::new(&task.cmd).args(&task.args).kill_on_drop(true).status() => { + Ok(status) = status => { trace!("{} exited with {:?}", task.cmd, status); } }