From b51c52fa4c15360a89182bfc2fc66884310ead62 Mon Sep 17 00:00:00 2001 From: jhqxxx Date: Thu, 27 Nov 2025 14:11:55 +0800 Subject: [PATCH] fix download img blocking error --- src/utils/img_utils.rs | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/utils/img_utils.rs b/src/utils/img_utils.rs index 9dd279a..083f86e 100644 --- a/src/utils/img_utils.rs +++ b/src/utils/img_utils.rs @@ -5,19 +5,21 @@ use base64::{Engine, engine::general_purpose}; use image::{DynamicImage, ImageReader}; pub fn load_image_from_url(url: &str) -> Result { - let response = reqwest::blocking::get(url) - .map_err(|e| anyhow!(format!("Failed to fetch image from url: {}", e)))?; - let bytes = response - .bytes() - .map_err(|e| anyhow!(format!("Failed to get image bytes: {}", e)))?; + tokio::task::block_in_place(|| { + let response = reqwest::blocking::get(url) + .map_err(|e| anyhow!(format!("Failed to fetch image from url: {}", e)))?; + let bytes = response + .bytes() + .map_err(|e| anyhow!(format!("Failed to get image bytes: {}", e)))?; - let cursor = Cursor::new(bytes); - let img = ImageReader::new(cursor) - .with_guessed_format() - .map_err(|e| anyhow!(format!("Failed to read image format: {}", e)))? - .decode() - .map_err(|e| anyhow!(format!("Failed to decode image: {}", e)))?; - Ok(img) + let cursor = Cursor::new(bytes); + let img = ImageReader::new(cursor) + .with_guessed_format() + .map_err(|e| anyhow!(format!("Failed to read image format: {}", e)))? + .decode() + .map_err(|e| anyhow!(format!("Failed to decode image: {}", e)))?; + Ok(img) + }) } pub fn load_image_from_base64(base64_data: &str) -> Result {