I am using this code to save images to an Absolute Database table.
procedure TfrmMain.btnWriteClick(Sender: TObject);
var
BlobStream: TABSBlobStream;
MemStream: TMemoryStream;
begin
MemStream := TMemoryStream.Create;
try
ImageEnView1.IO.SaveToStreamJP2(MemStream); // Program freezes at this line
//ImageEnView1.IO.SaveToStreamJ2K(MemStream); // Program freezes at this line
//ImageEnView1.IO.SaveToStreamJpeg(MemStream); // Works properly
//ImageEnView1.IO.SaveToStream(MemStream, ioJP2); // Program freezes at this line
//ImageEnView1.IO.SaveToStream(MemStream, ioJ2K); // Program freezes at this line
//ImageEnView1.IO.SaveToStream(MemStream, ioJPEG); // Works properly
MemStream.Position := 0;
// Now save to blobstream
with tblMain do
begin
Insert;
BlobStream := TABSBLOBStream(CreateBlobStream(FieldByName('Image'), bmWrite));
try
MemStream.SaveToStream(BlobStream);
finally
Blobstream.Free;
end;
Post;
end;
finally
MemStream.Free;
end;
end;
All SaveToStream methods for Jpeg2000 work when saving small images, but on larger images (eg from my Nikon 3200 camera, 6016x4000 pixels), the program freezes at the point when SaveToStream is called for all JPEG2000 methods.
SaveToStream Jpeg works without any problems.
Is there a bug in the SaveToStream for Jpeg2000 methods, or am I doing something wrong?
(ImageEn 7.0.0, Delphi 10.2 Tokyo, target Win64)