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

3
在C#中,我可以通过以下方式检索JPEG编码器:
var jpegEncoder = 
    ImageCodecInfo.GetImageEncoders()
        .Where(e => e.FormatID == ImageFormat.Jpeg.Guid)
        .Single();

我希望在F#中做同样的事情,我知道有一种非常简洁的方法可以实现,但我刚开始学习,还无法完全理解。我看到GetImageEncoders()下挂着一个Where方法,但我不知道该传入什么参数。我阅读了Don Syme's blog post关于F#和LINQ的文章,但我对F#的经验不够,无法真正理解它。是否有一种好的方式可以在F#中完成相同的事情?
1个回答

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

@ChaosPandion:GetImageEncoders 调用了同名的本地 Windows 函数。我认为可用的编码器取决于系统。 - Daniel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接