Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/48: Рейтинг темы: голосов - 48, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 14.12.2018
Сообщений: 36

Как открыть картинки из поля типа blob?

24.06.2019, 10:27. Показов 9436. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, подскажите пожалуйста есть поля (NOTE,SCHEME) в таблице тип Blob как их открыть? С помощью каких компонентов?
В поле Note (примечание) текст, а в поле Sсheme картинка. СУБД Fierbird.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.06.2019, 10:27
Ответы с готовыми решениями:

Как не сохраняя на диске открыть файл из Blob-поля (mssql)
Привет всем. Появилась необходимость разобраться с сохранением и чтением файлов в БД MS SQL средствами делфей. Разобрался с сохранением...

FireDAC: загрузка картинки из blob-поля
Всем доброго времени суток. Стоит задача из blob считать данные(картинка) в клиент для последующей обработки. База MySQL 5.5 ...

Как можно реализовать вывод из Firebird из поля с типом данных blob картинки и записывать их в PictureBox?
Здравстуйте. Как можно реализовать вывод из Firebird из поля с типом данных blob картинки и записывать их в picturebox? if (fb.State...

13
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
24.06.2019, 16:08
текст можно открыть в DBMemo
картинку в DBImage или
https://stackoverflow.com/ques... l-database
или
https://gist.github.com/Brutt/... e9526f96f5
1
0 / 0 / 0
Регистрация: 14.12.2018
Сообщений: 36
25.06.2019, 13:23  [ТС]
Спасибо.По тексту в Note всё получилось, а по картинкам в DBimage пишет:
bitmap image is not valid. Подскажите пожалуйста куда дальше копать?
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
25.06.2019, 13:27
самому записать в базу
и самому же прочитать
кроме того, не уверен, что DBImage умеет что-то кроме bmp
0
0 / 0 / 0
Регистрация: 14.12.2018
Сообщений: 36
25.06.2019, 13:39  [ТС]
а других компонентов нет? Которые смогут прочитать?
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
25.06.2019, 14:02
TImage
как в него читать - по ссылке есть
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
25.06.2019, 14:37
Если не отображается картинка, то возможно формат данных некорректный. Для начала надо определится что за данные там лежат, сохраните в файл и разберитесь что там за формат.
0
Модератор
 Аватар для D1973
9924 / 6460 / 2457
Регистрация: 21.01.2014
Сообщений: 27,415
Записей в блоге: 3
25.06.2019, 17:31
DBImage, реально, просто не умеет отображать что-то, кроме BMP-формата.
cybergreg, надо Вам отобразить другой формат - используйте модули JPEG, PNGImage и т.д. - выгружайте свою картинку из BLOB в поток (TMemoryStream), и после грузите Image.Picture.LoadFromStream()
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
25.06.2019, 21:21
https://stackoverflow.com/ques... l-database
вот тут полный и готовый код по ссылке
берем jpeg файл, сами! пишем его в базу данных. чтобы точно быть уверенными
потом сами же читаем и выводим именно в Image

чуть модифицировать код (мы ж не знаем как вы там к Firebird подключаетесь...)
кроме того нет никакого понятия а как вы-то узнаете, что за картинка внутри blob? jpeg, png?
если предположить, что у вас датасет ads и поле scheme содержит JPEG

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
uses jpeg....
.....
 
procedure TDEMO.Button1Click(Sender: TObject);
var
 g:TGraphic;
begin
    try
      g:=TJpegimage.Create;
      g.Assign(ads.FieldByName('scheme'));
      Image1.Picture.Assign(g);
    finally
      g.Free;
    end;
end;
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
25.06.2019, 21:36
Вот потому я и предложил разобраться сначала с тем что-же там за формат хранится, вполне может оказаться, что там ole-контейнер с картинкой или текстом.
0
0 / 0 / 0
Регистрация: 14.12.2018
Сообщений: 36
21.04.2020, 18:47  [ТС]
Цитата Сообщение от krapotkin Посмотреть сообщение
вот тут полный и готовый код по ссылке
Delphi
1
2
3
4
5
6
7
try
g:=TJpegimage.Create;
g.Assign(ADOQuery1.FieldByName('scheme'));
Image1.Picture.Assign(g);
finally
g.Free;
end;
Выдаёт ошибку "Jpeg error 42". Подскажите пожалуйста как узнать какой формат файла там?
Я уже и пробовал этот вариант но тоже не выходит.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm3.DBGridEh1DblClick(Sender: TObject);
var
 g:TGraphic;
 ptkwrd:Tmemorystream;
begin
ptkwrd:= Tmemorystream.Create;
tblobfield(form3.ADOQuery1.FieldByName('Scheme')).SaveToStream(ptkwrd);
ptkwrd.Position:=0;
ptkwrd.SaveToFile('pictre.jpeg');
shellexecute(Handle, 'open','temp.dwg',nil,nil,SW_SHOWNORMAL);
ptkwrd.Free;
form3.Image1.Picture.Graphic.LoadFromStream(ptkwrd);
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
22.04.2020, 20:27
а кто туда файл записывал, что вы отгадываете??
на самом деле по первым трем-четырем байтам можно узнать, что за формат
но зачем?
0
 Аватар для Пытливый
3763 / 2267 / 705
Регистрация: 29.05.2013
Сообщений: 9,622
22.04.2020, 20:52
Цитата Сообщение от krapotkin Посмотреть сообщение
на самом деле по первым трем-четырем байтам можно узнать, что за формат
Встретил я как-то базку, где дескриптор файла был JPG, а вот сами данные были записаны с примитивным xor-шифрованием. Кому и зачем потребовалось так извращаться, история умалчивает, но одного дескриптора может быть маловато - нужен весь файл.
0
 Аватар для krapotkin
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,671
Записей в блоге: 21
23.04.2020, 11:53
а я поменяю местами четный и нечетный байт и первый и последний бит, это чем-то поможет? )))

если чел хотел решить задачу зашифровать файл, это одно, а тут мы вроде решаем совсем другую
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.04.2020, 11:53
Помогаю со студенческими работами здесь

Определение размера и типа картинки BLOB
Ситуация. В базе лежат картинки JPEG и GIF. Как определять размер (W&H)и тип картинки (JPEG or GIF)? Вариант с использованием Image...

Сконвертировать данные эксель файла из поля типа BLOB
Всем доброго времени суток. Есть поле в БД Оракл с типом BLOB, где лежат данные некоторого эксель файла. Мне нужно вытащить эти...

Как редактировать поле данных типа blob?
В бд(MySQL) имеется таблица. одно из полей таблицы имеет тип редактировать BLOB Пытался ручками отредактировать данные а таком поле не...

Как избавиться от показа слова BLOB в колонке, если нет картинки?
Показываю фотографии в DBGridEh. Как скрыть показ слова (BLOB) если нет фотографии? procedure...

Как вытянуть запросом данные из поля формата BLOB(+)
Здравствуйте! В общем проблема такая, есть бд на базе FireBird, там есть поле BODY, в программе оно отвечает за вложения, туда...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru