如何使用ImageSharp实现图片局部颜色偏移(荧光笔效果)
实现透明荧光笔高亮效果(C#图像处理库方案)
荧光笔高亮的核心是半透明颜色叠加在目标区域,既保留底层内容的可读性,又添加醒目的高亮色彩。以下是用ImageSharp及其他C#库的实现方案:
一、使用ImageSharp实现
ImageSharp是跨平台的.NET图像处理库,支持灵活的绘图和颜色混合操作。
步骤1:安装依赖包
通过NuGet安装核心库及绘图扩展:
Install-Package SixLabors.ImageSharp Install-Package SixLabors.ImageSharp.Drawing
步骤2:代码实现
using SixLabors.ImageSharp; using SixLabors.ImageSharp.Drawing; using SixLabors.ImageSharp.Drawing.Processing; using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.Processing; // 加载原始图片 using var image = Image.Load<Rgba32>("input.png"); // 定义高亮区域(示例为矩形,可替换为文本对应的不规则路径) var highlightArea = new RectangleF(50, 100, 300, 40); // 配置荧光色:黄色+30%透明度(alpha值0-1,可按需调整) var highlightColor = Color.Yellow.WithAlpha(0.3f); // 绘制高亮:使用Multiply混合模式增强色彩融合效果 image.Mutate(ctx => ctx .Fill( new SolidBrush(highlightColor), new GraphicsOptions { BlenderMode = PixelColorBlendingMode.Multiply }, highlightArea ) ); // 保存处理后的图片 image.Save("output.png");
关键说明
- 若需高亮不规则文本区域,可结合OCR工具(如Tesseract.NET)识别文本的边界框,生成对应的
Polygon或Path对象传入Fill方法。 - 调整
WithAlpha的参数值可控制高亮透明度,0.2-0.4区间更贴近真实荧光笔效果。
二、使用System.Drawing实现(.NET Framework/.NET Core)
若项目已依赖System.Drawing,也可快速实现:
步骤1:安装依赖(.NET Core/5+)
Install-Package System.Drawing.Common
步骤2:代码实现
using System.Drawing; using System.Drawing.Drawing2D; // 加载原始图片 using var image = new Bitmap("input.png"); using var g = Graphics.FromImage(image); // 优化绘图质量 g.SmoothingMode = SmoothingMode.AntiAlias; g.CompositingQuality = CompositingQuality.HighQuality; // 创建半透明荧光笔刷 var highlightColor = Color.FromArgb((int)(0.3 * 255), Color.Yellow); using var brush = new SolidBrush(highlightColor); // 绘制高亮区域 var highlightRect = new Rectangle(50, 100, 300, 40); g.FillRectangle(brush, highlightRect); // 保存结果 image.Save("output.png");
内容的提问来源于stack exchange,提问作者SpicyCatGames
相关产品推荐
相关产品推荐

