Головна сторінка
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.06 c
1-1101891672
Галинка
2004-12-01 12:01
2004.12.12
Як динамічно створити малюнок на формі


1-1101645706
Reminator
2004-11-28 15:41
2004.12.12
Криптографія crypt-md5


4-1099132569
Сирин
2004-10-30 14:36
2004.12.12
відновлення файлів


6-1096645116
Стеф
2004-10-01 19:38
2004.12.12
Сканування мережі та проблеми з цим


14-1100788448
Ігор Шевченко
2004-11-18 17:34
2004.12.12
Відкрита реєстрація на повторний семінар Borland ALM 2005





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