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 Citra dalamDelphi Teknik Pengolahan Citra 2 Komponen TImage 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. Citra dalamDelphi Teknik Pengolahan Citra 3 Dalam Delphi, informasi format citra terdapat pada subproperti Bitmap, yaitu PixelFormat, dengan nilai seperti tercantum pada Tabel Nilai Format citra pf1bit Citra biner/monokrom pf8bit 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. pf24bit Citra true color (16 juta warna) Program Penampil Citra 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 Citra dalamDelphi Teknik Pengolahan Citra 4 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 Penampil Citra FormStyle fsMDIForm Position poDefaultPosOnly TPanel Name PanelAtas Align alTop TStatusBar Name StatusBar Align alBottom SimplePanel True TButton Name ButtonAmbilCitra Caption &Ambil citra TOpenPicture Dialog Name OpenPictureDialog Filter Bitmaps (*.bmp)|*.bmp InitialDir . Citra dalamDelphi Teknik Pengolahan Citra 5 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 Citra dalamDelphi Teknik Pengolahan Citra 6 Komponen Properti Nilai TForm Name FormCitra Caption Citra FormStyle fsMDIChild TImage Name Image AutoSize True Center True Form anak untuk menampilkan citra Citra dalamDelphi Teknik Pengolahan Citra 7 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 Citra dalamDelphi Teknik Pengolahan Citra 8 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); Citra dalamDelphi Teknik Pengolahan Citra 9 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; Citra dalamDelphi Teknik Pengolahan Citra 10 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. Citra dalamDelphi Teknik Pengolahan Citra 11 Referensi Achmad, B, Firdausy, K, 2005, Teknik Pengolahan Citra Digital menggunakan DELPHI, Ardi Publishing, Yogyakarta