Головна сторінка
Top.Mail.Ru Яндекс.Метрика
Форум: "Бази";
Поточний архів: 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;

починати
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.57 MB
Час: 0.065 c
14-1099531403
ІМХО
2004-11-04 04:23
2004.12.12
Королівство ночі ...


1-1101640633
serko
2004-11-28 14:17
2004.12.12
DateTimePicker


14-1101105848
ІМХО
2004-11-22 09:44
2004.12.12
Слово про еміграцію


14-1101033590
ms
2004-11-21 13:39
2004.12.12
Як в VB6 викликати функцію з бібліотеки C ++


14-1100873270
by
2004-11-19 17:07
2004.12.12
Чи є в Delphi 7 Professional компонент TClientDataSet?





африкаанс албанський арабська вірменин азербайджанець баскський білоруський болгарська каталонський Китайська (спрощене письмо) Китайський традиційний) хорватський чеська данську мову нідерландський Ukranian естонець Філіппінська фінську мову французький
галісійська грузинський німецький грецький гаїтянський креольський давньоєврейську хінді угорський ісландський індонезієць ірландський італійський японський корейський латиська литовець македонець малайський мальтійський норвежець
перс полірування португальська румунський російська сербський словацький словенський іспанська суахілі шведську мову тайський турецька український урду в'єтнамський валлійський ідиш бенгальський боснійський
кебуано есперанто гуджараті хауса хмонг ігбо яванський каннада кхмерская Лао латинь маорі маратхі монгольський непальська панджабі сомалійський тамільська телугу йоруба
зулуський
Англійська Французький Німецький Італійський Португальська Русский Іспанська