Создайте файл изображения (используя C # или VB.NET) из столбца MS Access OLE Object - PullRequest
1 голос
/ 21 мая 2009

Столбец OLE Object содержит изображения, но тип изображения (jpg / gif / tiff) неизвестен. Эти образы необходимо извлечь из БД и сохранить на диске. Приложение в основном использует VB.NET, но также приветствуются примеры на C #.

спасибо Рахул

Ответы [ 2 ]

3 голосов
/ 21 мая 2009

Создайте байтовый массив, достаточно большой, чтобы содержать объект OLE:

Dim bArr(Len(<OLE Object Field>)) as Byte

Прочитайте в первой строке столбца объекта OLE и поместите его в массив байтов.

Для файла GIF байты с 0 по 2 будут иметь значение ASCII "GIF". Для файла JPEG байты с 6 по 9 обычно имеют значение «JFIF». Для файла PNG байты с 1 по 3 будут иметь значение ASCII "PNG".

TIFF сложнее, поскольку существует так много разных стандартов TIFF.

Как только вы определили тип файла, вы можете использовать метод Брайана для сохранения файла

3 голосов
/ 21 мая 2009

Попробуйте использовать System.Drawing.Image.FromStream для загрузки изображения. Вы можете создать поток из байтового массива, используя System.IO.MemoryStream foo = new System.IO.MemoryStream(MyByteArray);

После загрузки изображения вы можете использовать любой материал GDI, который хотите сохранить (например, ImageInstance.Save(FileName);)

...