Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Jpg do bazy

32 views
Skip to first unread message

dethar

unread,
Jul 20, 2000, 3:00:00 AM7/20/00
to
witam

Jak zapisac plik JPG do bazy, mam w niej pole blob a w zmiennej jp obrazek
jpg
wykorzystuje ponizsza procedure, wszystko jest ok ale tylko dla plikow BMP
przy JPG wyrzuca blad ze niedozwolone wrzucenie JPG! a na grupie czytalem ze
wrzucenie jpg jest jak najbardziej mozliwe.

jp :TJpegImage;
bs :TBLobStream;
begin
Table1.edit;
bs:=TBlobStream.Create (Table1.fieldbyname ('Zdjecie') as
TBlobField,bmwrite);
jp.SaveToStream (bs);
bs.Free;
Table1.Post
end;

moze istnieje prostszy sposob ? no i oczywiscie skuteczny!

pozdrowienia
dethar


Sławomir Adamski

unread,
Jul 21, 2000, 3:00:00 AM7/21/00
to
Witam
Użytkownik "dethar" <det...@poland.com> napisał w wiadomości
news:1rzd5.23931$pD2.4...@news.tpnet.pl...

Jak rozumiem, to chcesz w bazie danych przechowywać obrazki w formacie JPEG.
I że przewidziałeś osobne procedury czytające takie obrazki z plików *.JPG
Trochę się temu przyjrzałem i stwierdziłem, że trzeba by zmienić koncepcję.
Na formę kładziemy Image wykorzystując je do oglądania obrazków, a w pliku
danych przechowujemy obrazki w formacie JPEG. Czyli coś np tak:

<DELPHI CODE>
// gdzieś w kodzie nastąpiło:
Tabela.Append;
Tabela.Post;
// i już mamy miejsce na nasz obrazek

// gdzieś w kodzie załadowano obrazek do Image:
Image.Picture.LoadFromFile(ExtractFilePath(Application.ExeName) +
'Obrazek.jpg');
// i już mamy go na ekranie.

// Teraz zapisywanie do bazy danych
procedure Ttest.ZapiszClick(Sender: TObject);
var bs :TBlobStream;
begin
Tabela.Edit;
bs := TBlobStream.Create(Tabela.FieldByName ('Fotka') as TBlobField,
bmReadWrite);
try
Image.Picture.Graphic.SaveToStream(bs);
finally
bs.Free;
Tabela.Post;
end;
end;

// I odczytywanie z bazy danych

procedure Ttest.CzytajClick(Sender: TObject);
var js: TJPEGImage; bs :TBlobStream;
begin
bs := TBlobStream.Create(Tabela.FieldByName ('Fotka') as TBlobField,
bmRead);
try
js := TJPEGImage.Create;
try
js.LoadFromStream(bs);
Image.Height := js.Height;
Image.Width := js.Width;
Image.Picture.Bitmap.Assign(js);
finally
js.Free;
end;
finally
bs.Free;
end;
end;
</DELPHI CODE>

Sprawdzone. I co najważniejsze, działa, choć być może można to inaczej
rozwiązać.
--
Sławek


0 new messages