2011-09-26 58 views
3

在C#中,我可以检索JPEG编码器是这样的:如何检索F#中的JPEG图像编解码器?

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

我希望做同样的事情F#,我知道有一个精美简洁的方式做到这一点,但我刚开始出来,我无法弄清楚。我看到有一个Where方法可用挂在GetImageEncoders()上,但我无法弄清楚要传入什么。我在F#和LINQ上阅读了Don Syme's blog post,但我只是没有足够的F#经验来真正理解它。

有没有一种很好的方式,我可以在F#中做同样的事情?

回答

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

@ChaosPandion:'GetImageEncoders'调用[本地Windows功能](http://msdn.microsoft.com/en-us/library/ms534080(V = vs.85)的.aspx)相同的名称。我认为可用的编码器是依赖于系统的。 – Daniel

相关问题