Kamis, 02 Juli 2009

Laporan Resmi Praktikum 2

Analisa :

Listing program :

Button 1

void Cprak2Dlg::OnButton1()

{

// TODO: Add your control notification handler code here

CDC* pDC = m_picr.GetDC();

CDC dcMem;

CRect rect;

BITMAP bm;//

int i,j;

long int warna;

char str[5];

HBITMAP hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),

"pens.bmp",IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION);

if(hBitmap)

{

if(m_bmpBitmap.DeleteObject())

m_bmpBitmap.Detach();

m_bmpBitmap.Attach(hBitmap);

}

m_picr.GetClientRect(rect);

m_bmpBitmap.GetBitmap(&bm);

dcMem.CreateCompatibleDC(pDC);

dcMem.SelectObject(&m_bmpBitmap);

for(i=0;i

for(j=0;j

{

// memberi warna pada titik

dcMem.SetPixel(j,i,0x000000FF);

}

pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,

0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);

// membaca warna pada titik

warna=dcMem.GetPixel(5,5);

sprintf(str,"%ld",warna);

pDC->TextOut(10,10,str);

}

Button2

void Cprak2Dlg::OnButton2()

{

// TODO: Add your control notification handler code here

CDC* pDC = m_picg.GetDC();

CDC dcMem;

CRect rect;

BITMAP bm;//

int i,j;

long int warna;

char str[5];

HBITMAP hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),

"pens.bmp",IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION);

if(hBitmap)

{

if(m_bmpBitmap.DeleteObject())

m_bmpBitmap.Detach();

m_bmpBitmap.Attach(hBitmap);

}

m_picg.GetClientRect(rect);

m_bmpBitmap.GetBitmap(&bm);

dcMem.CreateCompatibleDC(pDC);

dcMem.SelectObject(&m_bmpBitmap);

for(i=0;i

for(j=0;j

{

// memberi warna pada titik

dcMem.SetPixel(j,i,0x0000FF00);

}

pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,

0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);

// membaca warna pada titik

warna=dcMem.GetPixel(5,5);

sprintf(str,"%ld",warna);

pDC->TextOut(10,10,str);

}

Button3

void Cprak2Dlg::OnButton3()

{

// TODO: Add your control notification handler code here

CDC* pDC = m_picb.GetDC();

CDC dcMem;

CRect rect;

BITMAP bm;//

int i,j;

long int warna;

char str[5];

HBITMAP hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),

"pens.bmp",IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION);

if(hBitmap)

{

if(m_bmpBitmap.DeleteObject())

m_bmpBitmap.Detach();

m_bmpBitmap.Attach(hBitmap);

}

m_picb.GetClientRect(rect);

m_bmpBitmap.GetBitmap(&bm);

dcMem.CreateCompatibleDC(pDC);

dcMem.SelectObject(&m_bmpBitmap);

for(i=0;i

for(j=0;j

{

// memberi warna pada titik

dcMem.SetPixel(j,i,0x00FF0000);

}

pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,

0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);

// membaca warna pada titik

warna=dcMem.GetPixel(5,5);

sprintf(str,"%ld",warna);

pDC->TextOut(10,10,str);

}



Pada dasarnya pengerjaan program ini sama dengan yang dicontohkan, perbedaannya adalah disini digunakan satu ruang tambahan (picture) untuk menampung hasil dari pencampuran ketiga warna. Besar dari ukuran masing-masing warna penyusun juga tidak fixed seperti pada program contoh, melainkan meminta input dari user ( 0 – 255 ). Input ini akan dibaca sebagai nilai integer. Disini juga hanya digunakan sebuah tombol (command) untuk mengisi keempat kolom (picture). Sehingga pada program button ini terdapat empat kali proses pengisian warna, yang pertama dikerjakan adalah mengisi warna hasil pencampuran, kemudian red, green, lalu blue. Tidak harus urut seperti ini, melainkan merupakan kreasi programmer masing-masing.

Kesimpulan :

1. Pencampuran ketiga warna dasar akan menghasilkan berbegai warna bergantung dari kadar dari masing-masing warna

2. Dalam numerisasi heksa untuk warna, dua digit paling belakang diwakili warna merah, kemudian dua digit selanjutnya diwakili warna hijau, dan biru untuk dua digit berikutnya.

Laporan Resmi Praktikum 1


Analisa :

Setelah menyelesaikan praktikum ini, dapat dianalisa bahwa untuk mengerjakan praktikum tersebut pertama-tama kita membuat suatu projek baru yaitu berupa Multiple document, bukan Dialog based seperti pada percobaan sebelumnya. Projek tersebut diberi nama Test. Kemudian kita membuat menu-menu yang dibutuhkan berikut submenunya. Menu yang saya buat hanya dua yaitu Menu dan Bantuan. Untuk Menu ada empat submenu yang saya buat yaitu ‘Satu’, ‘Dua’, ‘Tiga’, ’Empat’, dan ‘Lima’. Sedangkan untuk ‘Bantuan’ hanya ada satu submenu yaitu Tentang Test.

Listing programnya adalah :
void CTestView::OnSatu()
{
// TODO: Add your command handler code here
MessageBox("Selamat Belajar Pengolahan Citra");
}
void CTestView::OnDua()
{
// TODO: Add your command handler code here
CDC* pDC = GetDC();
pDC->TextOut(10,10,"Ini adalah Teks");
}
void CTestView::OnTiga()
{
// TODO: Add your command handler code here
CDC* pDC = GetDC();
pDC->MoveTo(50,20);
pDC->LineTo(50,200);
pDC->TextOut(30,5,"y");
pDC->MoveTo(50,200);
pDC->LineTo(250,200);
pDC->TextOut(260,200,"x");
}
void CTestView::OnEmpat()
{
// TODO: Add your command handler code here
}
void CTestView::OnLima()
{
// TODO: Add your command handler code here
}

Pada latihan no. 1, kita diminta untuk membuat suatu program untuk menampilkan messagebox dengan tulisan ‘Selamat Belajar Pengolahan Citra’ apabila salah satu submenu dipilih. Untuk menampilkan messagebox tersebut, menu yang dipilih adalah ‘Menu’ sedangkan submenu yang dipilih adalah ‘Satu

Pada latihan no. 2, kita diminta untuk membuat program yang bisa menampilkan tulisan ‘Ini adalah teks’ apabila salah satu submenu dipilih. Untuk menampilkan tulisan tersebut, menu yang dipilih adalah ‘Menu’, sedangkan submenu yang dipilih adalah ‘Dua’

Pada latihan no. 3, kita diminta untuk membuat program yang bisa menampilkan sumbu x dan y apabila salah satu submenu dipilih. Untuk menampilkan tulisan tersebut, menu yang dipilih adalah ‘Menu’, sedangkan submenu yang dipilih adalah ‘Tiga’

Kesimpulan :

*MFC dapat digunakan untuk membuat program yang bisa menampilkan dan memroses suatu gambar.
*Untuk membuat program yang menghasilkan tampilan seperti pada percobaan awal, jenis projek yang dipilih yaitu ‘Dialog based’. Sedangkan untuk membuat program yang menghasilkan tampilan seperti pada latihan, jenis projek yang dipilih yaitu ‘Multiple document’.