Citra dalam Delphi Kartika Firdausy - UAD kartika@ee.uad.ac.id blog.uad.ac.id/kartikaf Setelah mempelajari materi ini, mahasiswa diharapkan mampu: menjelaskan dan mengimplementasikan pembuatan program penampil citra dalam Delphi Teknik Pengolahan Citra 1
Komponen TImage Delphi tidak menyediakan secara khusus rutin-rutin untuk pengolahan citra, oleh karena itu perlu dibuat sendiri program untuk mengolah citra. Namun Delphi telah menyediakan sarana untuk menampilkan citra, yaitu melalui komponen TImage yang terdapat pada palet komponen Additional. Komponen ini memiliki properti Picture yang digunakan untuk menyimpan data citra. Citra yang akan ditampilkan diambil dari file gambar yang dapat ditentukan pada saat mendesain dengan cara mengisi nilai properti ini, atau pada saat program dijalankan dengan menggunakan prosedur LoadFromFile. Subproperti yang penting pada Picture antara lain adalah: Height, berisi nilai tinggi citra Width, berisi nilai lebar citra Bitmap, berisi data format dan piksel citra. Pada materi ini pengolahan dilakukan terhadap nilai-nilai piksel pada Bitmap. Teknik Pengolahan Citra 2
Dalam Delphi, informasi format citra terdapat pada subproperti Bitmap, yaitu PixelFormat, dengan nilai seperti tercantum pada Tabel Nilai pf1bit pf8bit pf24bit Citra biner/monokrom Format citra Citra skala keabuan. Sebenarnya nilai pf8bit adalah untuk citra warna berindeks 8 bit. Namun dalam buku ini, citra skala keabuan direpresentasikan sebagai citra berindeks 8 bit dengan komponen palet warna merah, hijau dan biru yang bernilai sama, sehingga menampilkan warna keabuan dari hitam sampai putih. Citra true color (16 juta warna) Program Penampil Citra Pada bagian ini akan dibuat contoh program sederhana untuk menampilkan sebuah citra yang diambil dari file berekstensi BMP. Pengambilan gambar dilakukan dengan menggunakan komponen TOpenPictureDialog yang terdapat pada palet komponen Dialogs. Komponen ini mempermudah kita dalam memilih file citra yang akan ditampilkan karena memiliki fasilitas preview. Citra ditampilkan pada sebuah window anak. 1. Buatlah project baru. 2. Simpan form dengan memilih menu File-Save As..., dan mengisi file name = UnitUtama 3. Ubah ukuran form Teknik Pengolahan Citra 3
4. Ubah nama Form1 menjadi FormUtama dan tambahkan komponen berikut serta ubahlah nilai-nilai propertinya. ButtonAmbilCitra ditaruh di atas PanelAtas. Komponen Properti Nilai TForm Name FormUtama Caption FormStyle Position Penampil Citra fsmdiform podefaultposonly TPanel Name PanelAtas Align altop TStatusBar Name StatusBar Align SimplePanel albottom True TButton Name ButtonAmbilCitra TOpenPicture Dialog Caption Name Filter InitialDir. &Ambil citra OpenPictureDialog Bitmaps (*.bmp) *.bmp Teknik Pengolahan Citra 4
Tampilan 5. Buat form baru, yang digunakan sebagai window anak untuk menempatkan citra yang akan ditampilkan, dengan memilih menu File- New-Form. 6. Ubah nama form tersebut menjadi FormCitra dan tambahkan komponen TImage dari palet komponen Additional sesuai dengan Gambar Teknik Pengolahan Citra 5
Komponen Properti Nilai TForm Name FormCitra Caption FormStyle Citra fsmdichild TImage Name Image AutoSize Center True True Form anak untuk menampilkan citra Teknik Pengolahan Citra 6
7. Simpan form ini dengan memilih menu File-Save As..., dan mengisi file name = UnitCitra 8. Form anak ini hanya akan ditampilkan ketika file citra sudah diambil. Secara default, Delphi akan membuat dan menampilkan form yang ada. Untuk mencegah Delphi secara otomatis membuat FormCitra, jalankan menu Project-Options..., kemudian pilih FormCitra pada kotak Auto-create forms dan tekan tombol > sehingga FormCitra pindah ke kotak Available forms, seperti terlihat dalam Gambar Dialog Project Options Teknik Pengolahan Citra 7
9. Klik kembali pada FormUtama dan pilih menu File-Use Unit... Pada Dialog Use Unit, pilih UnitCitra dan tekan tombol OK. (pastikan bahwa sudah ada tulisan uses UnitCitra; di bawah keyword implementation): implementation uses UnitCitra; {$R *.dfm} 10. Buat event handler OnClick pada ButtonAmbilCitra (dengan cara mendobel klik pada ButtonAmbilCitra). Mula-mula definisikan variabel untuk menampung tulisan jenis format citra (biner, keabuan, atau true color): procedure TFormUtama.ButtonAmbilCitraClick(Sender: TObject); var fc: string; Pengambilan gambar hanya akan dilakukan apabila kita tidak membatalkan pemilihan file dalam OpenPictureDialog, atau dengan kata lain OpenPictureDialog jadi dieksekusi. Yang mula-mula dilakukan adalah membuat FormCitra sebagai tempat untuk menampilkan citra dengan menggunakan fungsi Application.CreateForm. begin if (OpenPictureDialog.Execute) then begin if (FormCitra = nil) then Application.CreateForm(TFormCitra, FormCitra); Teknik Pengolahan Citra 8
Kemudian fungsi LoadFromFile dipanggil untuk membaca file citra yang dipilih, lalu mengubah tinggi dan lebar FormCitra agar sesuai dengan ukuran citra([1]). FormCitra.Image.Picture.LoadFromFile( OpenPictureDialog.FileName); FormCitra.ClientHeight := FormCitra.Image.Picture.Height; FormCitra.ClientWidth := FormCitra.Image.Picture.Width; FormCitra.ClientHeight := FormCitra.Image.Picture.Height; Lalu tentukan tulisan mengenai format citra yang telah diambil tadi sesuai dengan Tabel di atas case (FormCitra.Image.Picture.Bitmap.PixelFormat) of pf1bit : fc := 'biner'; pf8bit : fc := 'keabuan'; pf24bit : fc := 'true color'; end; ([1]) Pengesetan tinggi form (FormCitra.ClientHeight) dilakukan 2 kali untuk menghilangkan pengaruh perbedaan tinggi scrollbar. Akhirnya, tampilkan tulisan tersebut beserta nama file citra yang dibaca dan ukurannya. StatusBar.SimpleText := OpenPictureDialog.FileName + ' (' + IntToStr(FormCitra.Image.Picture.Width) + 'x' + IntToStr(FormCitra.Image.Picture.Height) + ', ' + fc + ')'; end; end; Teknik Pengolahan Citra 9
Jalankan program tersebut. Tekan tombol Ambil citra dan pilih file citra yang akan ditampilkan Sebagaimana telah dijelaskan di muka, file citra yang dipilih adalah file bitmap berekstensi BMP. Setelah dipilih (dan menekan tombol Open), file citra tersebut akan ditampilkan dalam window anak yang tersedia. Window utama kemudian dapat diubah ukurannya (atau dapat juga dimaximize) untuk menampilkan citra secara utuh. Pada bagian bawah form utama, status bar menampilkan nama file, ukuran, serta format citra yang sedang ditampilkan. Teknik Pengolahan Citra 10
Referensi Achmad, B, Firdausy, K, 2005, Teknik Pengolahan Citra Digital menggunakan DELPHI, Ardi Publishing, Yogyakarta Teknik Pengolahan Citra 11