Hallo !
Ich habe folgendes Problem:
ich weiß zwar, wie man JPG oder BMP-Bilder in Blob Felder schreibt und liest (ist hier ja auch oft beschrieben), aber wie kann ich ein Bild unabhängig vom Format in ein DB-Blob-Feld speichern?
Ich wähle ein Bild aus (mit dem ImageDialog) und speichere es in die DB:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| var bs: TBlobStream; begin
Query.Edit;
with Query do begin bs := TBlobStream(CreateBlobStream(TBlobField(FieldByName('LOGO')),bmWrite)); end;
LOGO.Picture.Graphic.SaveToStream(bs);
bs.Free; end; |
dabei ist ja egal, welches format die grafik hat (JPG,BMP o.a.)
Will ich jedoch das Bild aus der DB laden, muß ich ja wissen, was für ein Format es hat, oder ? ich mach das so:
Quelltext
1: 2: 3: 4: 5: 6:
| bs := TBlobStream(Query.CreateBlobStream(Query.Fieldbyname('MyBlob'), bmRead)); jp := TJPegImage.Create; jp.LoadFromStream(bs); Image.Picture.Assign(jp); bs.Free; jp.Free; |
hier kommt mir immer ein Fehler JPG-Fehler #41
wie kann ich aber unabhängig vom Bildformat das Bild dem Image zuweisen ? Ich weiß ja nicht, wann im Feld ein JPG, wann ein BMP ist.
Für eure hilfe wäre ich sehr dankbar
heinz
Es ist besser, Genossenes zu bereuen, als dass man nichts genossen hat.