Jak zapisać jpg w bazie paradox tak aby nie konwertować na bmp (chce uzyskać proporcjonalny przyrost wielkości plku mb do wielkości jpg a nie bmp jak sie dzieje)
Stosowałem typ pola Binnary. Po analizie wielkość pliku mb przyrosla tak jak bym zamiast jpg wstawiał bmp (to samo działo sie z typem pola Graphics - oczywiscie tu wstawiałem gif - plik mb zwekszyl objetość nie proporcjonalnie go gif ale tak jaby to bylo bmp). Mam wrazenie ze baza paradox bedzie zawsze przyjmować obrazki jako bmp.
nie jestem pewien ale sprawdz może BLOB'a w paradoxie
szukaj - to nie boli!!
http://groups.google.com/groups?client=opera&rls=pl&q=delphi%20paradox%20jpg&sourceid=opera&ie=utf-8&oe=utf-8&sa=N&tab=wg
http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_21604999.html
i przebierasz w odpowiedziach
Do uses dodaj Jpeg
Odczyt z bazy i umieszczenie w standardowym Image:
var
jpeg : TJpegImage;
begin
jpeg := TJpegImage.Create;
jpeg.Assign(Modul.Zapytanie.FieldByName('z51') as TBlobField);
Image1.Picture.Assign(jpeg);
jpeg.Free;
end;
Zapis do bazy obrazka, który jest wyświetlany na Image. Jeśli usuniesz komentarz, możesz ustawić stopień kompresji.
var
jpeg : TJpegImage;
s : TMemoryStream;
begin
jpeg := TJPEGImage.Create;
s := TMemoryStream.Create;
jpeg.Assign(Image1.Picture);
//jpeg.CompressionQuality := 75;
//jpeg.Compress;
jpeg.SaveToStream(s);
Modul.Zapytanie.Params[0].LoadFromStream(s, ftBlob);
s.Clear;
jpeg.Free;
s.Free;
end;
Aha, typ pola w bazie do przechowywania obrazków to Binary.
Misiekd napisał(a)
szukaj - to nie boli!!
Popieram to ... Ale np. http://www.experts-exchange.com jest o ile się nie mylę płatny, więc normalny (czyli i ja) użytkownik niewiele tam znajdzie :( .
Dzieki - działa ok (mb zwieksza sie o wielkośc jpg)
Jednakże zastosowałem i trochę inną metodę tj. jpg wkładam do pola Graphic (w paradox) przez zwykłe table1.pole.loadfromfile(opendialog1.filename)
i jak się okazuje plik mb przyrasta o wielkość jpg (no i inne pole)
Wyciągam to w taki sposób ze biore jpg z bazy jpg.assign(form1pole) a potem zamieniam na Bitmape i wyswietlam w image
Pozdrowienia
Kawałek kodu pochodzi z programu w którym trzeba było rysować po obrazku, a później zapamiętać te zmiany. Dlatego jest takie zapisywanie do bazy.