Я пытался использовать метод mergeTiffStreams класса TiffUtil, размещенный по адресу:
http://kseesharp.blogspot.com/2007/12/class-for-tiff-manipulation.html
Однако, как и другие люди прокомментировали этот поток, конечный результатчто я получаю поток, который содержит только мой первый файл TIFF.Другие TIFF, которые я передал в массиве MemoryStream, не включены.
Кто-нибудь еще сталкивался с этой проблемой раньше?Если это так, то любой совет будет наиболее ценным.
Спасибо.
[ОБНОВЛЕНИЕ]
Вот код, который у меня есть на данный момент.Возвращаемый поток содержит только первый TIFF из переданного массива.
public MemoryStream mergeTiffStreams(MemoryStream[] tiffStreams)
{
if (tiffStreams == null)
throw new ArgumentNullException("tiffStreams");
Encoder enc = Encoder.SaveFlag;
ImageCodecInfo info = null;
foreach (ImageCodecInfo ice in ImageCodecInfo.GetImageEncoders())
if (ice.MimeType == "image/tiff")
info = ice;
EncoderParameters ep = new EncoderParameters(1);
ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.MultiFrame);
MemoryStream tiffStream = new MemoryStream();
Bitmap masterBitmap = new Bitmap(tiffStreams[0]);
masterBitmap.Save(tiffStream, info, ep);
ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.FrameDimensionPage);
for (int x = 1; x < tiffStreams.Length; x++)
{
masterBitmap.SaveAdd(Image.FromStream(tiffStreams[x]), ep);
}
ep.Param[0] = new EncoderParameter(enc, (long)EncoderValue.Flush);
masterBitmap.SaveAdd(ep);
return tiffStream;
}