Форум: "Базы";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
ВнизРазмер Access и JPEG Найти похожие ветки
← →
kirilllius (2004-11-14 00:50) [0]Мастера, объясните такую ситуацию. У меня в базе Access есть OLE (Blob) поле. Я гружу туда JPEG изображение.
Загрузка - Считал файл в поток, скинул поток в Blob поле.
Чтение – Читаю данные из Blob поля в поток, из потока скидываю в TImage.
Но дело в том, что база растет непропорционально. Допустим, база у меня 5,5 Мб. Я вставляю в нее 22 изображения на общий вес 290 Кбайт. Но база вырастает не до 5,8 Мб, а до 13 Мб. Проводил сжатие базы в Access получил 11 Мб, но не как 5,8 Мб. Подскажите, в чем проблема, может я неправильно загоняю JPEG в базу?
//**********************************
//кнопка добавить изображение
//************************************
procedure TfrmMain.butAversEdtClick(Sender: TObject);
procedure LoadImg(Field: TBLOBField; FileName: String; ToImage:TImage32);
var Stream: TStream;
begin
try
ToImage.Bitmap.LoadFromFile(FileName);
Stream:= TMemoryStream.Create;
ToImage.Bitmap.SaveToStream(Stream);
Stream.Position := 0;
tabMoneta.Edit;
Field.LoadFromStream(Stream);
tabMoneta.Post;
finally
Stream.Free;
end;
end;
begin
LoadImg(TBLOBField(tabMoneta.FieldByName("Avers")), FileName,imgAvers);
end;
← →
DrPass © (2004-11-14 02:10) [1]Скорее всего, Access выделяет место под BLOB-поля не по их размеру, а по страницам. Ну а чему там равен размер страницы по умолчанию - ХЗ
← →
kirilllius (2004-11-14 10:02) [2]А можно ли изменить размер страницы под размер потока?
← →
Shama_n © (2004-11-14 11:50) [3]Ты загоняешь в поток не Jpeg а BitMap разумеется он занимает больше памяти чем Jpeg. Наверно нужно сам Jpeg файл в Blob сохранять, затем его считывать допустим на HDD и открывать в TImage. Может конечно можно и более красиво реализовать...
← →
Shama_n © (2004-11-14 11:56) [4]Пропробуй использовать это:
Jpeg: TJpegImage;
Jpeg.SaveToStream
← →
sniknik © (2004-11-14 12:04) [5]попробуй
ToImage.Bitmap.SaveToStream(Stream);
на
ToImage.Picture.Graphic.SaveToStream();
поменять.
(правда тогда со чтением в том виде что утебя сейчас проблемы будут ;о))
← →
DrPass © (2004-11-14 12:08) [6]Сорри, я даже код не глянул %)
← →
kirilllius (2004-11-14 23:14) [7]Всем спасибо, особенно Shama_n. Действительно если грузить картинку через TJpegImage, то база не раздувается, а вырастает ровно на вес картинки. Большое спасибо.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.043 c