refactor: 优化图像输入源设计,重构为零污染的 TryFromImage 特征

- 移除原有的 ImageInput 枚举,避免运行时匹配与所有权限制
- 引入自定义 TryFromImage 特征,专用于将不同来源安全转换为 ImageSource
- 优化错误处理新增 InvalidBase64Header 错误信息
- 迁移 load_image_from_input 到 image_helper.rs 为后续剥离到业务层做准备
This commit is contained in:
2026-07-16 14:13:56 +08:00
parent cd70748393
commit 4f6987f594
8 changed files with 284 additions and 167 deletions

View File

@@ -1,6 +1,6 @@
use image::{DynamicImage, GrayImage, ImageBuffer, Luma, imageops::FilterType};
use image::{imageops::FilterType, DynamicImage, GrayImage, ImageBuffer, Luma};
use ndarray::{Array2, Array3, ArrayView2, ArrayView3, azip};
use ndarray::{azip, Array2, Array3, ArrayView2, ArrayView3};
use std::cmp::{max, min};
// 模拟openCV
@@ -174,8 +174,6 @@ pub fn rgb_to_opencv_hsv(r: u8, g: u8, b: u8) -> (u8, u8, u8) {
(h_opencv, s_opencv, v_opencv)
}
/// 对应 Python 的 convert_to_grayscale
/// 将图像转换为灰度图 (L模式)
pub fn convert_to_grayscale(image: &DynamicImage) -> GrayImage {