fix download img blocking error

This commit is contained in:
jhqxxx
2025-11-27 14:11:55 +08:00
parent 4e7573e4ff
commit b51c52fa4c
+14 -12
View File
@@ -5,19 +5,21 @@ use base64::{Engine, engine::general_purpose};
use image::{DynamicImage, ImageReader};
pub fn load_image_from_url(url: &str) -> Result<DynamicImage> {
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<DynamicImage> {