2011-09-26 63 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

相關問題