C# - содержимое XFL: конвертировать файл.dat в растровое изображение
У меня есть файлы.fla, которые используют формат XFL. внутри есть папка /bin с некоторыми файлами.dat, эти файлы являются изображениями.
Есть ли способ преобразовать эти.dat-файл в растровое изображение и отобразить их в элементе управления PictureBox?
Вот пример файла данных: ссылка
И соответствующее изображение (экспортировано из Flash) ссылка
ОБНОВЛЕНИЕ: ниже моего кода:
string scenePath = "Path to .fla file";
ZipFile zip = new ZipFile(scenePath);
MemoryStream ms = new MemoryStream();
foreach (ZipEntry entry in zip)
{
if (entry.FileName.Contains(objName))
{
entry.Extract(ms);
//TODO: Need to convert the content of MemoryStream to image type!
Bitmap bmp = new Bitmap(ms);
pictureBoxObjView.Image = bmp;
}
}
ОБНОВЛЕНИЕ 2: Я нашел сообщение, описывающее похожую проблему XFL - Что такое файлы./bin/*.dat?, в ответ нашел это:
где распакованные данные - это пиксели с типом хранения: ARGB, поэтому с информацией о размере должно быть достаточно, чтобы получить изображение из него. Он использует сжатие ZLIB (www.zlib.net). Flash использует уровень сжатия 1, но можно использовать любой уровень (но это не обязательно, поскольку источники обычно вообще сжимаются.
но я все еще не понимаю, как преобразовать файл.dat в растровое изображение!
Я попытался вручную распаковать.fla и переименовать файл.dat в изображение ext (.jpg,.png,.bmp), чтобы проверить, является ли это нормальный файл изображения, но при попытке открыть я получил ошибку "Неверный формат". Это.
Моя проблема заключается в том, как преобразовать содержимое моего MemoryStream в растровое изображение?
С Уважением,
1 ответ
Если вы можете извлечь файлы из папки /bin в поток или байтовый массив (который затем будет инкапсулирован в поток), вы можете вызвать соответствующий конструктор Bitmap и просто назначить это растровое изображение свойству image объекта PictureBox.