You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ImageSharp 2.1.3中RecolorBrush及Fill API不可用问题咨询

问题解答

1. 缺失包的说明

SixLabors.ImageSharp.Drawing是独立的NuGet包,并非包含在主ImageSharp包内。你需要单独安装对应2.1.3版本的SixLabors.ImageSharp.Drawing包,才能获取该命名空间及相关绘图API。

2. RecolorBrush的替代方案

RecolorBrush在ImageSharp 2.x版本中已被移除,属于破坏性变更。实现颜色替换需求可采用以下两种方式:

方案一:使用ReplaceColor(更简洁直接)

using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Processing;

using (var image = Image.Load("file.png"))
{
    // 将白色替换为透明,容差设为0.2
    image.Mutate(ctx => ctx.ReplaceColor(Color.White, Color.Transparent, new ColorDistanceThreshold(0.2f)));
    image.Save("transparent.png");
}

方案二:使用ColorBlendingBrush(支持自定义混合逻辑)

using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Drawing.Processing;
using SixLabors.ImageSharp.PixelFormats;

using (var image = Image.Load<Rgba32>("file.png"))
{
    var brush = new ColorBlendingBrush(Color.Transparent);
    // 仅对白色像素应用透明画笔
    image.Mutate(ctx => ctx.Fill(brush, pixel => pixel.Equals(Color.White.ToRgba32()) ? 1f : 0f));
    image.Save("transparent.png");
}

3. ctx.Fill方法的问题

安装SixLabors.ImageSharp.Drawing包后,Fill方法会作为扩展方法出现在IImageProcessingContext中——该方法是Drawing包提供的绘图扩展能力,主ImageSharp包不包含相关逻辑。

4. 官方信息获取途径

  • 查看ImageSharp仓库的Release Notes,里面会详细记录版本迭代中的破坏性变更、API调整内容
  • 参考仓库的Samples目录,包含对应版本的实际使用示例
  • 查看ImageSharp.Drawing的官方文档章节,确认绘图类API的正确用法

内容的提问来源于stack exchange,提问作者Alexander Schmidt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 17:15:54