【发布时间】:2023-03-11 20:29:01
【问题描述】:
如何从使用 C#/.NET 中的移动相机拍摄的白色背景图像(A4 纸)中提取对象(签名)并在可能的情况下对其进行裁剪?
我正在尝试 ImageMagick 库,但输出不是 100% 正确,我试图在没有运气的情况下操纵这些值:
string GetSignature(string signature) {
string withoutBackground = "signature_no_bg.png";
using (var image = new MagickImage(signature))
{
image.Transparent(MagickColors.White);
// -alpha set
image.Alpha(AlphaOption.Set);
// -channel RGBA (don't think you need this)
// -fuzz 50%
image.ColorFuzz = new Percentage(40);
// -fill none
image.Settings.FillColor = MagickColors.None;
// -floodfill +0+0 white
image.FloodFill(MagickColors.White, 0, 0);
image.Write(Server.MapPath(withoutBackground));
}
return withoutBackground;
}
使用上面的代码,如下图:
被转换为:
另一种选择是 https://www.remove.bg/tools-api ,效果很好,但有点贵。
有什么建议可以增强我的 ImageMagick 代码或使用其他类型的库吗?
【问题讨论】:
标签: c# .net imagemagick