Хранение файла изображения в объекте (без необходимости файла впоследствии) - PullRequest
1 голос
/ 18 февраля 2012

Я искал везде, но, похоже, не могу найти решение этой проблемы.

Я создаю персональное приложение для хранения информации, и одна из вещей, которые я хотел бы сохранить вФайл БД - это миниатюра для каждой записи.Я загрузил изображения из файлов, но я хотел бы иметь возможность сохранять БД без необходимости физического присутствия файла впоследствии.Другими словами, я хотел бы отделить переменную изображения от ее файла, но при этом сохранить данные изображения в этой переменной.

У меня нет фрагмента для публикации, так как я не уверен, какподойти к этой проблеме.Любая помощь будет принята с благодарностью!Я использую Picturebox для загрузки изображения, и в моем объекте есть переменная изображения, но когда я сохраняю файл в этом изображении, ему все равно требуется, чтобы файл .jpg находился там, где я его выбрал ...

РЕДАКТИРОВАТЬ: я должен быть более конкретным, я не использую SQL или что-то в этом роде, я просто сериализовать объект, используемый для хранения моей базы данных в файл.Я предполагаю, что я использую "db" в более общем смысле ...

Спасибо!

Ответы [ 2 ]

2 голосов
/ 18 февраля 2012

Вы можете попробовать один из следующих подходов:

  1. Используйте WPF и System.Windows.Media.Imaging пространство имен
  2. Использование COM-взаимодействия с интерфейсами WIC (см. http://code.msdn.microsoft.com/wictools для WicCop, который содержит экспорт всех API для C #).
  3. Класс System.Drawing.Image также может быть полезен для вас, если вы хотите сделать что-то рудиментарное, например, прочитать изображение с диска и записать его в другой поток для сохранения в БД.
0 голосов
/ 18 февраля 2012

Это будет зависеть от того, какой тип базы данных вы используете, но ...

Если вы используете Microsoft SQL Server и размер файлов не превышает max (2 гига), тоЯ бы использовал VarBinary (max) .

Тогда вам просто нужно прочитать байты обратно в источник изображения.Telerik имеет классный элемент управления бинарными изображениями , который позволяет вам просто создавать необработанные двоичные данные.

...