Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Jpg в Blob через TStream [D7, Paradox]


Страницы:   1 2

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]

Никто не подскажет... :(


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо