Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

ke1020/ImageProcess

Repository files navigation

图片处理库

使用方式

项目的 .csproj 文件中添加项目引用

<Project Sdk="Microsoft.NET.Sdk">
 <ItemGroup>
 <ProjectReference
 Include="ImageProcess/Ke.ImageProcess.ImageSharp/Ke.ImageProcess.ImageSharp.csproj" />
 </ItemGroup>
</Project>

注册服务

void RegisterServices(IServiceCollection services)
{
 services.AddImageSharp();
}

使用服务

public class Service
{
 private readonly IImageConverter _converter;
 private readonly IImageScaler _scaler;
 private readonly IImageWatermarker _imageWatermarker
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="converter">图片格式转换服务对象</param>
 /// <param name="scaler">图片缩放服务对象</param>
 /// <param name="watermarker">图片水印服务对象</param>
 public Service(IImageConverter converter, IImageScaler scaler, IImageWatermarker watermarker)
 {
 _converter = converter;
 _scaler = scaler;
 _imageWatermarker = watermarker;
 }
 /// <summary>
 /// 图片格式转换
 /// </summary>
 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
 });
 }
 /// <summary>
 /// 图片缩放
 /// </summary>
 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,
 });
 }
 /// <summary>
 /// 图片水印
 /// </summary>
 private async Task ImageWatermarkAsync()
 {
 // 水印执行完毕事件
 _imageWatermarker.OnWatermarked += (sender, args) =>
 {
 SetProgress(100);
 };
 // 图片水印
 await _imageWatermarker.WatermarkAsync(new ImageWatermarkRequest<ImageWatermark>(["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<TextWatermark>(["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 // 是否平铺水印
 });
 }
}

About

图片处理库

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /