Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Firebird, Interbase > посоветуйте как хранить графику в InterBase 6.5


Автор: Helpmeplz 22.5.2006, 16:30
Имеет InterBase 6.5

Что нужно: необходимо хранить картинки формата jpg
Описание картинок:
                                 размер около от 2 до 4mb
                                 разрешение 3264х2448

качество необходимо так как на картинках есть объекты на которых имеются надписи и видны они только после нескольких увеличений.


как я знаю InterBase 6.5 хранит в bitmap формате. то есть получается что необходимо конвертировать в bmp-формат.
размер получается большой.
например размер 3.09 mb после сохранения в bmp получается 22.8 mb.


помогите советом что делать.
 

Автор: Alex 22.5.2006, 16:52
Цитата(Helpmeplz @  22.5.2006,  17:30 Найти цитируемый пост)
как я знаю InterBase 6.5 хранит в bitmap формате. 

Кто вам сказал такой бред? Для хранения используйте поля типа Blob 

Автор: Helpmeplz 22.5.2006, 17:41
Добавлено @ 17:43 
Цитата(Alex @ 22.5.2006,  16:52)
Цитата(Helpmeplz @  22.5.2006,  17:30 Найти цитируемый пост)
как я знаю InterBase 6.5 хранит в bitmap формате. 

Кто вам сказал такой бред? Для хранения используйте поля типа Blob


Я не так выразился наверное.

smile простите. 
вот цитата:
Таблицы InterBase не имеют простого типа BLOB-поля. Есть три варианта, или подтипа: тип 0, тип 1 и подтип, определенный пользователем. Типы 0 и 1 - "встроенные" типы. Тип 0 - BLOB-поля (тип по умолчанию) для хранения общих бинарных данных. Тип 1 - BLOB-поля для хранения текстовых BLOB-данных. Ни один из предопределенных типов не допускает автоматического извлечения данных изображения из BLOB-поля для его последующего отображения в компоненте TDBImage. BLOB-поля типа 0 могут использоваться для хранения данных bitmap-формата, но данные должны извлекаться и передаваться в объект типа TBitmap программным путем


скажите как сохранить jpeg в blob поле.
ведь его надо будет конвертировать в bmp?

или нет?

если нет то напишите какие функции использовать?

вот например не так?
procedure TForm1.Button1Click(Sender: TObject); 
var 
 C: TClipboard; 
begin 
 C := TClipboard.Create; 
 try 
   if Clipboard.HasFormat(CF_BITMAP) then 
     DBImage1.PasteFromClipboard 
   else 
     ShowMessage('Буфер обмена не содержит изображения!'); 
 finally 
   C.Free; 
 end; 
end; 
  
или вот еще мне знаком такой способ

procedure TForm1.Button2Clicck(Sender: TObject); 
begin 
 Table1Bitmap.LoadFromFile( 
   'c:\images\image.bmp'); 
end;
  

Автор: vv3 22.5.2006, 23:17
Вместо Bitmap в случае JPEG надо использовать Picture. И модуль jpeg подключать, а хранить в блобе можно все, что угодно, любые бинарные данные....  

Автор: Alex 22.5.2006, 23:27
http://forum.ibase.ru/phpBB2/viewtopic.php?p=10894&highlight=#10894 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)