# ImageProcess **Repository Path**: xkpro/image-process ## Basic Information - **Project Name**: ImageProcess - **Description**: 图片处理库 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-24 - **Last Updated**: 2024-12-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 图片处理库 ## 使用方式 项目的 `.csproj` 文件中添加项目引用 ```xml ``` 注册服务 ```cs void RegisterServices(IServiceCollection services) { services.AddImageSharp(); } ``` 使用服务 ```cs public class Service { private readonly IImageConverter _converter; private readonly IImageScaler _scaler; private readonly IImageWatermarker _imageWatermarker /// /// 构造函数 /// /// 图片格式转换服务对象 /// 图片缩放服务对象 /// 图片水印服务对象 public Service(IImageConverter converter, IImageScaler scaler, IImageWatermarker watermarker) { _converter = converter; _scaler = scaler; _imageWatermarker = watermarker; } /// /// 图片格式转换 /// private async Task ImageConvertAsync() { // 注册图片格式转换完成事件 _converter.OnConverted += (sender, e) => { // 图片格式转换完成,设置进度为 100 SetProgress(100); }; // 执行转换 await _converter.ConvertAsync(new ImageConvertRequest(["C:/1.jpg", "C:/2.jpg"], "D:/Output/", "png") { Quality = 90 }); } /// /// 图片缩放 /// private async Task ImageScaleAsync() { // 缩放执行完毕事件 _scaler.OnScaled += (sender, args) => { SetProgress(100); }; await _scaler.ScaleAsync(new ImageScaleRequest(["C:/1.jpg", "C:/2.jpg"], "D:/Output/", "png") { ScaleMode = ScaleMode.EqualRatio, // 等比缩放 Quality = 90, Width = 200, Height = 200, }); } /// /// 图片水印 /// private async Task ImageWatermarkAsync() { // 水印执行完毕事件 _imageWatermarker.OnWatermarked += (sender, args) => { SetProgress(100); }; // 图片水印 await _imageWatermarker.WatermarkAsync(new ImageWatermarkRequest(["C:/1.jpg", "C:/2.jpg"], "D:/Output/", "png") { Mode = WatermarkMode.Image, // 图片水印 Watermark = new ImageWatermark("C:/watermark.png"), // IsTite 为 true 时该项无效 Position = WatermarkPosition.BottomRight, Opacity = (double)argments.Opacity / 100, // 透明度 Suffix = "-wt", // 输出文件后缀 Rotation = 45, // 水印旋转角度 IsTile = false // 是否平铺水印 }); // 文本水印 await _imageWatermarker.WatermarkAsync(new ImageWatermarkRequest(["C:/1.jpg", "C:/2.jpg"], "D:/Output/", "png") { Mode = WatermarkMode.Text, // 文本水印 Watermark = new TextWatermark(args.WatermarkText ?? string.Empty) { // ImageSharp 可以写安装到系统的字体名称 FontFamily = "Microsoft YaHei", FontSize = 16, // 字体大小 TextColor = new RgbaColor(200, 200, 200, 50), // 文本颜色 //StrokeColor = new RgbaColor(255, 255, 255, 50), StrokeWidth = 2, // BackgroundColor = new RgbaColor(0, 0, 0, 0), }, // IsTite 为 true 时该项无效 Position = WatermarkPosition.BottomRight, Opacity = (double)argments.Opacity / 100, // 透明度 Suffix = "-wt", // 输出文件后缀 Rotation = 45, // 水印旋转角度 IsTile = false // 是否平铺水印 }); } } ```