簡體   English   中英

如何將system.Drawing.Image序列化為C#中的流?

[英]how serialize a system.Drawing.Image into stream in c#?

我有一個Image對象img,我需要將其保存到內存流中。

保存方法具有以下簽名:

Image.Save(Stream,ImageCodecInfo,EncoderParameters)

但是我不知道我應該在參數2和3中提供什么。

我使用BinaryFormmater序列化解決了問題,但是我想使用最合適的方法。

感謝您的任何幫助!

有一個更簡單的重載: Image.Save(Stream, ImageFormat) 第二個參數使您可以選擇保存圖像的格式,例如BMP,PNG或JPEG。

image.Save(stream, ImageFormat.Bmp); // if you need to access the pixels, perhaps
image.Save(stream, ImageFormat.Png); // lossless compression (good for drawings)
image.Save(stream, ImageFormat.Jpeg); // lossy but powerful compression (good for photos)

該鏈接包含您需要的信息。 在該頁面上,他們將其列為獲取ImageCodecInfo的最簡單方法:

public static ImageCodecInfo FindEncoder(ImageFormat format) { 
    if (format == null)
        throw new ArgumentNullException("format");

    foreach (ImageCodecInfo codec in ImageCodecInfo.GetImageEncoders()) {
        if (codec.FormatID.Equals(format.Guid)) {
            return codec;
        }
    }

    return null;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM