![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Jpg в Blob через TStream [D7, Paradox]
explorer © (2003-09-02 10:20:00)
Мастера!
Посмотрел примеры по сабжу в форуме и попробовал такое же сделать. При записи картинки ругается "Bitmap image is not valid". Подскажите, где я чего не учел и как все правильно реализовать?
запись:
begin
if OpenPictureDialog1.Execute then
begin
f := OpenPictureDialog1.FileName;
Image1.Picture.LoadFromFile(f);
end;
try
ms := TMemoryStream.Create;
jpg := TJPEGImage.Create;
jpg.LoadFromFile(f);
jpg.SaveToStream(ms);
ms.Position := 0;
with Table1 do
begin
Edit;
Insert;
TBlobField(FieldByName("Kartinka")).LoadFromStream(ms);
Post;
end;
finally
ms.Free;
jpg.Free;
end;
end;
чтение:
try
ms := TMemoryStream.Create;
TBlobField(Table1.FieldByName("Kartinka")).SaveToStream(ms);
jpg := TJPEGImage.Create;
ms.Position := 0;
jpg.LoadFromStream(ms);
Image2.Picture.Assign(jpg);
finally
ms.Free;
jpg.Free;
end;
Verg (2003-09-02 14:20:00) [21]
А зачем переваливать через Image?
Ms:= TFileStream.Create(OpenPictureDialog1.FileName,fmOpen Read);
try
TBlobField(FieldByName("Kartinka")).LoadFromStream(ms);
finally
Ms.Free;
end;
Hooch (2003-09-02 14:06:00) [22]
Image не умеет из блоба Jpeg грузить
explorer (2003-09-02 14:03:00) [23]
>sniknik ©
а если мне надо сначала данные внести в базу, а уж потом их считывать от туда в другую форму? Как в таком случае?
(Вы уж извините за ламерство в этом вопросе :( не приходилось еще работать с потоками и картинками)
В общих чертах задача такая: на одной форме происходит ввод различных данных (в том числе и вставка картинок).
Потом осуществляется выборка этих данных. С *.bmp все работает, а вот с *.jpeg не хотит!
Подскажите где грабли?
sniknik (2003-09-02 13:49:00) [24]
по моему сохранять нужно оттуда же куда записываеш,
а то сохраняемые данные
jpg := TJPEGImage.Create;
jpg.LoadFromFile(f);
jpg.SaveToStream(ms);
разнятся с записью в имадж
jpg.LoadFromStream(ms);
Image2.Picture.Assign(jpg);
тогда уж надо
Image2.Picture.SaveToStream -> его записывать в базу
и после чтения
Image2.Picture.LoadFromStream <- туда ложить
explorer (2003-09-02 13:47:00) [25]
>Digitman ©
это я исправил (там, просто комментарий стоял для другой ф-ции). :)
Лучше, подскажите где я глобально напортачил?
Digitman (2003-09-02 13:31:00) [26]
> Edit;
> Insert;
для начала прокомментируй, на кой шут ты делаешь сначала Edit и тут же Insert... ЛИБО вставка новой записи ЛИБО модификация существующей записи !!
explorer (2003-09-02 13:31:00) [27]
тогда, хоть посоветуйте какую-нибудь доку почитать по этому сабжу
explorer (2003-09-02 11:44:00) [28]
Никто не подскажет... :(