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.

Tidak ada komentar:

Posting Komentar