|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.08.2012, 12:03 | #1 |
Пользователь
Регистрация: 15.01.2009
Сообщений: 52
|
Загрузка изображения из БД
Всем привет! Столкнулся с такой проблемой:
Имеется БД, в ней имеется таблица для хранения изображений, в таблице имеется поле Data, в которое я загружаю изображения в 16-тиричной системе, т.е. по сути изображение хранимое в БД выглядит примерно так Код:
Тобишь перевести из 16-тиричной системы в готовый BitMap Может кто сталкивался с таким, подскажите пожалуйста? |
15.08.2012, 21:27 | #2 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Использовать DBImage пробовали?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
15.08.2012, 23:21 | #3 |
Software Developer
Старожил
Регистрация: 19.12.2008
Сообщений: 2,070
|
Читаешь из БД массив байт.
Пишешь этот массив в MemoryStream. Загружаешь данные в Bitmap из выше созданного MemoryStream. Пишешь что-то наподобие этого: Image1.Picture.Assign(tmpBitmap);
Будь проще и люди к тебе потянутся
|
16.08.2012, 05:04 | #4 |
Старожил
Регистрация: 05.06.2008
Сообщений: 4,206
|
А зачем хранить картинку именно в 16-ти ричной системе?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
|
16.08.2012, 09:41 | #5 | |
Пользователь
Регистрация: 15.01.2009
Сообщений: 52
|
нет, не пробовал. DBImage преобразует байтовое значение в битпам?
Цитата:
Так уж сложилось, что картинки, загружаемые на сервер perl-скриптом преобразуются в байтовое значение, после чего собирается БД SQLite и отправляется на рабочую машину пользователя, поэтому чтобы не отправлять сами изображения, другого выхода пока не придумал. Да и зачем переделывать, когда осталось доделать всего чуть-чуть |
|
16.08.2012, 10:06 | #6 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
DBImage просто связывается с полем БД, хранящим картинку, и при позиционировании курсора на записи берет из данного поля данной записи значение. Как и любой DBDataControls-компонент
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
16.08.2012, 10:21 | #7 | |
Пользователь
Регистрация: 15.01.2009
Сообщений: 52
|
Цитата:
У меня есть Query, который берет необходимое поле из БД и записывает данные в динамический массив, после чего связь с БД закрывается. В это же время включается таймер, в котором собственно и должны преобразовываться полученные значения из массива в изображение. Как то так |
|
16.08.2012, 10:32 | #8 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Если картинка уже прочитана из базы, например в MemoryStream, то последовательно каждые 2 байта с помощью HexToBin преобразуем в байт и пишем в другой MemoryStream, из которого по концу преобразования загружаем в Image
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
16.08.2012, 13:47 | #9 | |
Пользователь
Регистрация: 15.01.2009
Сообщений: 52
|
Цитата:
Код:
stre - выходящий поток Вызываю её вот так: Код:
|
|
16.08.2012, 16:56 | #10 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Ну как вариант - выводить массив байт во временный файл типа file of byte а затем загружать через Image.LoadFromFile (точное название процедуры не помню, но она есть
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Загрузка изображения | iiunbreakableii | Общие вопросы Delphi | 1 | 13.02.2011 20:30 |
загрузка изображения | wlords | Помощь студентам | 3 | 24.11.2010 20:52 |
Загрузка изображения | _-Re@l-_ | Общие вопросы Delphi | 7 | 31.05.2010 14:54 |
Загрузка изображения из exe | Volkogriz | Общие вопросы Delphi | 13 | 18.01.2010 17:51 |
Загрузка изображения | JRcoker | Мультимедиа в Delphi | 15 | 04.11.2008 18:32 |