Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBImage - Bitmap ist ungültig (https://www.delphipraxis.net/132989-dbimage-bitmap-ist-ungueltig.html)

joachimd 27. Apr 2009 11:04

Re: DBImage - Bitmap ist ungültig
 
Zitat:

Zitat von uwe12
Ich habe jetzt die Position gefunden, aber irgendwie wird der bereich nicht weggeschnitten. Es bleibt die Datei unverändert.

Du hast oben mal sowas geposted:
Delphi-Quellcode:
    ms.Position:=0;
    bmp:=TBitmap.Create;
    ms.SaveToFile('temp.bmp');
    try
      bmp.LoadFromStream(ms);
ist es richtig, dass Du jetzt ms.Position auf 78 o.ä. gesetzt hast? Wenn Du danach vom Stream speicherst, musst Du den Stream wieder "zurückspulen" (ms.Position:=78;), bevor Du das LoadFromStream machen kannst. Ein Stream ist ein Bandlaufwerk...Wie bei den guten alten VHS-Kassetten kannst Du nur einmal anschauen, dann musst Du spulen;) Wenn Du also zwei Aktionen machst, setzt dein LoadFromStream am Ende auf...und nicht an Position 78.

maron 27. Apr 2009 16:11

Re: DBImage - Bitmap ist ungültig
 
Ja, damit hast du recht. Aber selbst die Datei(temp.bmp), die aus dem Stream gespeichert wird enthält ja noch diese 78 Bits, die er nicht will und ist damit nicht zu öffnen. Es wird also ab Position 0 gespeichert und nicht ab position 78...

uwe12 28. Apr 2009 08:21

Re: DBImage - Bitmap ist ungültig
 
maron hat Recht. Der Stream wird nicht ab Position 78 gespeichert, sondern der komplette Stream wird gespeichert mit dem falschen header.

maron 28. Apr 2009 10:24

Re: DBImage - Bitmap ist ungültig
 
ich kriegs net hin :wall:

hoika 28. Apr 2009 10:32

Re: DBImage - Bitmap ist ungültig
 
Hallo,

Das Problem ist aber bekannt.

Nehme ich mal Google mit delphi access bitmap blob

bekomme ich folgende Seite.

Bitmaps in Access

Da kann man sich das schön erklären lassen
und die Lösung wäre dann ab Seite 4.


Heiko

uwe12 28. Apr 2009 11:13

Re: DBImage - Bitmap ist ungültig
 
ich habe mir jetzt mal das Beispielprogramm heruntergeladen, aber jetzt kommt immer folgende Meldung:
[Pascal Fataler Fehler] E2202 Package 'VCL50' wird benötigt, konnte aber nicht gefunden werden.

hoika 28. Apr 2009 11:19

Re: DBImage - Bitmap ist ungültig
 
Hallo,

kompilier mal ohne Packages.

Entscheidend ist doch aber der Code auf der Seite.


Heiko

uwe12 28. Apr 2009 11:25

Re: DBImage - Bitmap ist ungültig
 
Ich habe jetzt die Packages entfernt, aber jetzt kommt folgende Fehlermeldung: [Pascal Fehler] Unit1.pas(68): E2010 Inkompatible Typen: 'TBlobField' und 'TADOTable'.
Delphi-Quellcode:
bS := TADOBlobStream.Create(AdoTable1, bmRead);

hoika 28. Apr 2009 11:32

Re: DBImage - Bitmap ist ungültig
 
Hallo,

da steht aber

bS := TADOBlobStream.Create(AdoTable1Picture, bmRead);

und nicht

bS := TADOBlobStream.Create(AdoTable1, bmRead);


Edit: Hm, er findet die MDB nicht ...


Heiko

uwe12 28. Apr 2009 12:00

Re: DBImage - Bitmap ist ungültig
 
ich habe aber doch das AdoTable in AdoTable1 umbenannt. Das heißt jetzt nicht mehr AdoTable1Picture sondern AdoTable1.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:53 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz