fix download img blocking error
This commit is contained in:
+14
-12
@@ -5,19 +5,21 @@ use base64::{Engine, engine::general_purpose};
|
|||||||
use image::{DynamicImage, ImageReader};
|
use image::{DynamicImage, ImageReader};
|
||||||
|
|
||||||
pub fn load_image_from_url(url: &str) -> Result<DynamicImage> {
|
pub fn load_image_from_url(url: &str) -> Result<DynamicImage> {
|
||||||
let response = reqwest::blocking::get(url)
|
tokio::task::block_in_place(|| {
|
||||||
.map_err(|e| anyhow!(format!("Failed to fetch image from url: {}", e)))?;
|
let response = reqwest::blocking::get(url)
|
||||||
let bytes = response
|
.map_err(|e| anyhow!(format!("Failed to fetch image from url: {}", e)))?;
|
||||||
.bytes()
|
let bytes = response
|
||||||
.map_err(|e| anyhow!(format!("Failed to get image bytes: {}", e)))?;
|
.bytes()
|
||||||
|
.map_err(|e| anyhow!(format!("Failed to get image bytes: {}", e)))?;
|
||||||
|
|
||||||
let cursor = Cursor::new(bytes);
|
let cursor = Cursor::new(bytes);
|
||||||
let img = ImageReader::new(cursor)
|
let img = ImageReader::new(cursor)
|
||||||
.with_guessed_format()
|
.with_guessed_format()
|
||||||
.map_err(|e| anyhow!(format!("Failed to read image format: {}", e)))?
|
.map_err(|e| anyhow!(format!("Failed to read image format: {}", e)))?
|
||||||
.decode()
|
.decode()
|
||||||
.map_err(|e| anyhow!(format!("Failed to decode image: {}", e)))?;
|
.map_err(|e| anyhow!(format!("Failed to decode image: {}", e)))?;
|
||||||
Ok(img)
|
Ok(img)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn load_image_from_base64(base64_data: &str) -> Result<DynamicImage> {
|
pub fn load_image_from_base64(base64_data: &str) -> Result<DynamicImage> {
|
||||||
|
|||||||
Reference in New Issue
Block a user