在C#中使用带有TIFF多页信息的内存流

时间:2017-03-15 16:43:39

标签: c# bitmap tiff

我正在从2位图创建多页TIFF。我可以将其保存到外部文件,然后打开TIFF。但我正在尝试使用内存流做同样的事情。这是TIFF编码部分。如果不是MemoryStream ms,我使用文件字符串一切正常。

    Encoder encoder = Encoder.SaveFlag;
    ImageCodecInfo encoderInfo = ImageCodecInfo.GetImageEncoders().First(i => i.MimeType == "image/tiff");
    EncoderParameters encoderParameters = new EncoderParameters(1);
    encoderParameters.Param[0] = new EncoderParameter(encoder, (long)EncoderValue.MultiFrame);

    // Save the first frame of the multi page tiff
    Bitmap firstImage = firstBitmap;

    MemoryStream ms = new MemoryStream();
    firstImage.Save(ms, encoderInfo, encoderParameters);

    encoderParameters.Param[0] = new EncoderParameter(encoder, (long)EncoderValue.FrameDimensionPage);

    Bitmap img = secondBitmap;
    firstImage.SaveAdd(img, encoderParameters);

    // Close out the file
    encoderParameters.Param[0] = new EncoderParameter(encoder, (long)EncoderValue.Flush);
    firstImage.SaveAdd(encoderParameters);

当我尝试使用以下方法解码流时出现问题:

Bitmap bitmap = (Bitmap)Image.FromStream(ms);

我似乎丢失了TIFF编码信息。

任何帮助?

0 个答案:

没有答案