namespace WorkCameraExport.Services.Interfaces
{
///
/// 图片服务接口 - 负责图片下载和处理
///
public interface IImageService : IDisposable
{
#region 下载
///
/// 下载单张图片
///
/// 图片 URL
/// 取消令牌
/// 图片字节数组
Task DownloadImageAsync(string url, CancellationToken cancellationToken = default);
///
/// 批量并发下载图片
///
/// 图片 URL 列表
/// 输出目录
/// 并发数
/// 进度回调(已下载数量)
/// 取消令牌
/// 下载结果字典(URL -> 本地文件路径,失败的为 null)
Task> DownloadImagesAsync(
List urls,
string outputDir,
int concurrency,
IProgress? progress = null,
CancellationToken cancellationToken = default);
#endregion
#region 处理
///
/// 压缩图片
///
/// 原始图片数据
/// 压缩质量 (1-100)
/// 压缩后的图片数据
byte[] CompressImage(byte[] imageData, int quality);
///
/// 缩放图片
///
/// 原始图片数据
/// 目标宽度
/// 目标高度
/// 缩放后的图片数据
byte[] ResizeImage(byte[] imageData, int width, int height);
///
/// 压缩并缩放图片
///
/// 原始图片数据
/// 目标宽度
/// 目标高度
/// 压缩质量 (1-100)
/// 处理后的图片数据
byte[] CompressAndResizeImage(byte[] imageData, int width, int height, int quality);
#endregion
}
}