如何在F#中检索JPEG图像编解码器?

时间:2011-09-26 23:00:30

标签: c# .net f# jpeg

在C#中,我可以检索这样的JPEG编码器:

var jpegEncoder = 
    ImageCodecInfo.GetImageEncoders()
        .Where(e => e.FormatID == ImageFormat.Jpeg.Guid)
        .Single();

我想在F#中做同样的事情,我知道有一种非常简洁的方法可以做到,但我刚刚开始,我无法弄明白。我看到GetImageEncoders()上有一个Where方法可用,但我无法弄清楚要传递给它的内容。我在F#和LINQ上阅读Don Syme's blog post,但我没有足够的F#经验来真正理解它。

我能用F#做同样的事吗?

1 个答案:

答案 0 :(得分:2)

#r "System.Drawing"
open System.Drawing.Imaging
let jpeg = 
    System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders() 
    |> Seq.find (fun e -> e.FormatID = ImageFormat.Jpeg.Guid)