Преобразование битовойAPTORCE на изображение, сохраняя все кадры
-
14-11-2019 - |
Вопрос
У меня есть метод здесь, который предполагается создать систему. Характер.Рассмотрим следующие предварительные обязательства:
- .
- Я получаю ратушку как параметр метода
- ниже вы найдете код, который делает
Преобразование от растровых капсурсе к изображению.
Преобразование:
.public Image ConvertBitmapSourceToImage(BitmapSource input) { MemoryStream transportStream = new MemoryStream(); BitmapEncoder enc = new BmpBitmapEncoder(); enc.Frames.Add(BitmapFrame.Create(input)); enc.Save(transportStream); transportStream.Seek(0, SeekOrigin.Begin); return Image.FromStream(transportStream); }
Теперь представьте, что Bitmapsource был создан из программного файла TIF.Что мне нужно сделать, это сделать любую страницу NT, доступную в коде.Класс Bitmapsource предлагает не поддерживать это, так что вы знаете, как получают один, но первый кадр из моего ввода?Или BitMAPTORCE прочитал во всем TIF как один кадр, теряя информацию о обрамлении?
Если это возможно, я мог бы добавить другой параметр на мой метод подписью, например:
.public Image ConvertBitmapSourceToImage(BitmapSource input, int frame) { ///[..] }
Любые идеи?
Спасибо заранее!
Решение
Как вы уже говорили, битмапсурсы не поддерживают несколько кадров.Возможно, это будет возможность наступить в точку, где TIFF декодируется и преобразует изображение из каждого кадра:
TiffBitmapDecoder decoder = new TiffBitmapDecoder(...) // use stream or uri here
System.Drawing.Image[] images = new System.Drawing.Image[decoder.Frames.Count];
for (int i = 0; i < decoder.Frames.Count; i++)
{
// use your converter function here
images[i] = ConvertBitmapSourceToImage(decoder.Frames[i]));
}
.
Я не проверил вышеуказанный код, поэтому извините за любые недостатки.