【发布时间】:2017-10-20 04:40:39
【问题描述】:
我正在尝试使用 ImageSharp 在 F# 中编辑图片。我正在努力让图像突变工作
要在 C# 中进行图像突变,看起来您只需使用 mutate method and a lambda:
image.Mutate(x => x.Kodachrome())
通常,要将 C# lambda 更改为 F#,我只需使用匿名函数,如下所示:
image.Mutate(fun x -> x.Kodachrome())
当我这样做时,我收到以下错误:
方法“变异”没有重载匹配。可用的重载如下所示(或在错误列表窗口中)。
看起来 Mutate 方法需要一个 ImageProcessor,但由于某种原因,在 F# 中编译器无法确定匿名函数是一个 ImageProcessor。如何让图像突变在 F# 中工作?
【问题讨论】:
-
Mutate方法有重载吗? -
我认为它只有一个:(扩展)Image.Mutate IPixel和'TPixel:> ValueType)>( [
] 操作:IImageProcessor []) : unit -
该参数类型看起来像一个接口,但您的 C# 代码正在传递一个 lambda 表达式。这不计算。你确定这是唯一的过载吗?
标签: f# imagesharp