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

How to load a JPEG imaeg to DBImage?

1,827 views
Skip to first unread message

PC Leung

unread,
Oct 17, 2003, 9:06:59 PM10/17/03
to

Hello

I have tried to load bitmap into DBImage field.
It is OK.
When I try to load jpeg, it turns out error.

How can I do that?

Thanks

Allan Knox

unread,
Oct 18, 2003, 12:54:39 AM10/18/03
to
I am not certain, but try adding JPEG to your Uses Clause. I know for
fairly sure that you do have to add an extra support unit for JPG to work.
Regards
Allan Knox


Osvaldo J. Fillia

unread,
Oct 20, 2003, 3:45:23 PM10/20/03
to
add uses jpeg
try it .....

procedure loadjpeg(FieldIMAGEN:TblobField; FileName:string);
var
Jpg: TJpegImage;
Stream: TMemoryStream;
begin
Jpg := nil;
Stream := nil;
try
Jpg := TJpegImage.Create;
Jpg.LoadFromFile(filename);
Stream := TMemoryStream.Create;
Jpg.SaveToStream(Stream);
Stream.Position := 0;
FieldIMAGEN.loadFromStream(Stream);
except
showmessage('problems');
jpg.Free;
Stream.Free;
raise;
end;
jpg.Free;
Stream.Free;
end;

procedure ShowJPG(FieldImagen:TBlobField; Picture:TPicture);
var
Stream: TMemoryStream;
Jpg: TJpegImage;
begin
Jpg := nil;
Stream := nil;
try
Stream := TMemoryStream.Create;
FieldImagen.SaveToStream(Stream);
if Stream.Size > 0
then begin
Jpg := TJpegImage.Create;
Stream.Position := 0;
Jpg.LoadFromStream(Stream);
Picture.Assign(Jpg);
end
else Picture.Assign(nil);
except
Picture.Assign(nil);
end;
jpg.Free;
Stream.Free;
end;

PC Leung <it...@msn.com> escribió en el mensaje de noticias
3f909233$1...@newsgroups.borland.com...

PC Leung

unread,
Oct 20, 2003, 9:09:34 PM10/20/03
to

Hi Osvaldo,

How can I determine if the object is bmp or jpg
so that I can choose different codings?

Thankx

Osvaldo J. Fillia

unread,
Oct 21, 2003, 10:50:12 AM10/21/03
to
i'm using only jpg's image
Try, create alternative field TIPEOFIMAGE into database loading 'JGP' o
'BMP'
and choose different code

Regards
Osvaldo


PC Leung <it...@msn.com> escribió en el mensaje de noticias

3f94874e$1...@newsgroups.borland.com...

PC Leung

unread,
Oct 22, 2003, 11:47:10 PM10/22/03
to

I have incorporated your coding into forms.
When I try to load a jpeg, a message displays as
"bitmap not vald"

procedure TfrmItemMaint.bbLoadClick(Sender: TObject);


var
Jpg: TJpegImage;
Stream: TMemoryStream;
begin

OPdialog.Title := 'Select a file to load';
OPdialog.InitialDir := 'C:\';
if OPdialog.Execute then


begin
Jpg := nil;
Stream := nil;
try
Jpg := TJpegImage.Create;

Jpg.LoadFromFile(OPdialog.FileName);


Stream := TMemoryStream.Create;
Jpg.SaveToStream(Stream);
Stream.Position := 0;

DMInv.TItemitemPicture.LoadFromStream(Stream);
finally
jpg.Free;
Stream.Free;
end;
end;
end;

Osvaldo J. Fillia

unread,
Oct 23, 2003, 9:50:18 AM10/23/03
to

DBImage1.datafield : = ' ';
and use ShowJPG to display


PC Leung <it...@msn.com> escribió en el mensaje de noticias

3f974f3e$1...@newsgroups.borland.com...

PC Leung

unread,
Oct 23, 2003, 11:22:22 AM10/23/03
to

I have tried your suggestion to use showJpg "picture.assign".

Both of them show "Bitmap image is not valid".
I am using MS Access.

How can I load a jpg into dbimage and show it on screen?
If I drop image component on a form and it is possible to use
a image component to load a jpg and show it on screen as
image1.loadfromfile (AFilename);

If it is DBImage, it becomes error message.

var
Jpg: TJpegImage;
Stream: TMemoryStream;
begin
OPdialog.Title := 'Select a file to load';
OPdialog.InitialDir := 'C:\';
if OPdialog.Execute then
begin
Jpg := nil;
Stream := nil;
try
Jpg := TJpegImage.Create;
Jpg.LoadFromFile(OPdialog.FileName);
Stream := TMemoryStream.Create;
Jpg.SaveToStream(Stream);
Stream.Position := 0;

DataModule1.DBImage1.Assign(Jpg);
// DataModule1.DBImage1.LoadFromStream(Stream);

Osvaldo J. Fillia

unread,
Oct 24, 2003, 8:33:59 AM10/24/03
to
1. Define procedure loadjpeg(FieldIMAGEN:TblobField; FileName:string);
2. Define procedure ShowJPG(FieldImagen:TBlobField; Picture:TPicture);
3. Insert DbImage into form, assing DBImage1.datafield : = ' '; (very
important !! otherwise "Bitmap image is not valid".)

4 To load
preview TImagenes.edit or insert
if.OPDialogImagen.Execute
then begin
loadJpeg(TImagenesIMAGEN,OPDialogImagen.FileName);
ShowJPG(TImagenesIMAGEN,DBImage1.Picture);
end;


5 To only show, on event scroll of TImagenes
ShowJPG(TImagenesIMAGEN,DBImage1.Picture);


I'm working with SqlServer an no problems, good luck !!!


procedure loadjpeg(FieldIMAGEN:TblobField; FileName:string);

var
Jpg: TJpegImage;
Stream: TMemoryStream;
begin

Jpg := nil;
Stream := nil;
try
Jpg := TJpegImage.Create;

Jpg.LoadFromFile(filename);


Stream := TMemoryStream.Create;
Jpg.SaveToStream(Stream);
Stream.Position := 0;

FieldIMAGEN.loadFromStream(Stream);
except
showmessage('problems');
jpg.Free;
Stream.Free;
raise;
end;
jpg.Free;
Stream.Free;
end;

procedure ShowJPG(FieldImagen:TBlobField; Picture:TPicture);
var
Stream: TMemoryStream;
Jpg: TJpegImage;

begin
Jpg := nil;
Stream := nil;
try

0 new messages