TDBImage hanya mendukung format gambar Bitmap untuk menyimpan maupun
menampilkan gambar dari database. Nah bagaimana caranya agar kita bisa
menyimpan gambar format JPG.
Tutorial berikut ini akan memberikan gambaran bagaimana caranya
menyimpan dan menampilkan gambar berformat JPG dari dalam database.
Gambar Format Bitmap
Untuk gambar format Bitmap, kita dapat mempergunakan komponen TDBImage
yang di hubungkan dengan kolom gambar kita, dan secara otomatis delphi
dapat menampilkan gambar atau menyimpannya ke dalam database.
Atau cara lainnya adalah mempergunakan komponen TImage untuk menampung
gambar kita, dan untuk menyimpannya cukup dengan perintah:
Dataset.FieldByName('GAMBAR').Assign(img1.Picture);
Untuk mengambil data dan menampilkannya ke komponen TImage cukup dengan perintah:
img1.Assign(Dataset.FieldByName('GAMBAR'));
Gambar Format JPeg
Untuk gambar format JPG, kita tidak dapat langsung mempergunakan
komponen TDBImage untuk menampung dan menampilkan gambar data database
karena format JPEG tidak dikenal, namun kita masih bisa menampung dan
menampilkan database dengan komponen TImage. Berikut ini cara menyimpan
gambar ke database dan menampilkan gambar dari database ke komponen
TImage
procedure SimpanGambar(ADataSet: TDataSet;
AImage: TPicture);
var
imgJpeg : TJPEGImage;
begin
if Assigned(ADataset) and Assigned(AImage) then
begin
imgJpeg := TJPEGImage.Create;
try
if (AImage.Graphic <> nil) and (AImage.Graphic.ClassNameIs('TJPegImage')) then
begin
imgJpeg.Assign(AImage.Graphic);
with imgJpeg do
begin
Grayscale := False;
CompressionQuality := 25;
ProgressiveEncoding := True;
Compress;
end;
ADataset.FieldByName('GAMBAR').Assign(imgJpeg);
end;
finally
FreeAndNil(imgJpeg);
end;
end;
end;
procedure TampilGambar(ADataSet: TDataSet;out AImage: TPicture);
var
imgJpeg : TJPEGImage;
begin
if Assigned(ADataSet) then
begin
imgJpeg := TJPEGImage.Create;
try
if not ADataSet.FieldByName('GAMBAR').IsNull then
if TBlobField(ADataSet.FieldByName('GAMBAR')).BlobSize > 0 then
begin
imgJpeg.Assign(ADataSet.FieldByName('GAMBAR'));
with imgJpeg do
begin
PixelFormat := jf24Bit;
Scale := jsFullSize;
Grayscale := False;
Performance := jpBestQuality;
Smoothing := True;
ProgressiveDisplay := True;
end;
AImage.Bitmap.Assign(imgJpeg);
end;
finally
FreeAndNil(imgJpeg);
end;
end;
end;
Pada contoh diatas, terdapat 2 prosedur, yang pertama adalah untuk
menyimpan gambar ke database, dan yang kedua adalah untuk mengambil dan
menampilkan gambar dari database.
Pengaturan properti dari JPeg, dapat dilihat pada help delphi dengan keyword TJPEGImage
cara lain lagi :
Biasanya
kita kalau nmenyimpan gambar pada delphi akan berbentuk bitmap, nah
jika ingin menyimpan kita bisa menggunakan teknik ini
.:. Steep
yang dilakukan adalah buat coding ini .:.
uses jpeg;
procedure
TForm1.Button1Click(Sender: TObject);
var
Jpg: TJpegImage;
Stream: TMemoryStream;
begin
Jpg := nil;
Stream := nil;
try
// Create a
JPEG image and load it from a file
Jpg :=
TJpegImage.Create;
Jpg.LoadFromFile(‘test.jpg’);
// Create a stream
and save the image to the stream
Stream :=
TMemoryStream.Create;
Jpg.SaveToStream(Stream);
Stream.Position := 0;
Table1.Append;
// Load the
Blob field from the stream
TBlobField(Table1.FieldByName(‘Graph’)).LoadFromStream(Stream);
Table1.Post;
except
jpg.Free;
Stream.Free;
raise;
end;
jpg.Free;
Stream.Free;
end;
To display a
JPEG image stored in a Blob field in a TImage control, we
can use a code like the following for example in an AfterScroll event:
procedure
TForm1.Table1AfterScroll(DataSet: TDataSet);
var
Stream: TMemoryStream;
Jpg: TJpegImage;
begin
Jpg := nil;
Stream := nil;
try
// Create a
stream and load the contents of the Blob field
Stream :=
TMemoryStream.Create;
TBlobField(Table1.FieldByName(‘Graph’)).SaveToStream(Stream);
if Stream.Size > 0 then begin
// Create a
JPEG image and load it from the stream
Jpg :=
TJpegImage.Create;
Stream.Position := 0;
Jpg.LoadFromStream(Stream);
// Assign
the JEPG image to the Picture property of an Image
Image1.Picture.Assign(Jpg);
end else
Image1.Picture.Assign(nil);
except
Image1.Picture.Assign(nil);
end;
jpg.Free;
Stream.Free;
end;
Memasukkan gambar berformat
Bitmap atau gambar berformat JPG/JPEG ke Database Access dengan Delphi , Serta
Menampilkan gambar berformat Bitmap atau gambar berformat JPG/JPEG dari
Database Access dengan Delphi.
Bagi pemula… memasukkan gambar ke
dalam database Access serta menampilkan gambar dari dalam database adalah
pekerjaan yang tidak semudah mengolah data text, sedangkan memasukkan
gambar ke dalam database serta menampilkannya adalah hal yang seharusnya
dikuasai oleh programmer delphi..
Sebagai contoh simple adalah
aplikasi di bawah ini..
Fungsi nya me load gambar bitmap
dari folder,
lalu menampilkannya ke komponen
image
Langkah selanjutnya adalah
menyimpannya ke dalam database
Langkah terakhir adalah
menampilkannya ke komponen image dari database… tampilannya adalah sebagai
berikut :