Kamis, 16 April 2009

Sambungan program tugas pada praktikum 2

void CPrak2Dlg::red() // fungsi untuk mengisi kolom bagian warna merah
{
 UpdateData();
 CDC* pDC = m_picr.GetDC(); 
 CDC dcMem; 
 CRect rect; 
 BITMAP bm;// 
 int i,j,r,g,b,w; 
 long int warna; 
 char str[5]; 
 HBITMAP hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(), 
 "ibra.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 
  UpdateData();
  g = 0;
  b = 0;
  r = m_nilai;
  w = r+(g<<8)+(b<<16);
   
  dcMem.SetPixel(j,i,w);
  } 

 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);
}

void CPrak2Dlg::green() // fungsi untuk mengisi kolom bagian warna hijau
{
 UpdateData();
 CDC* pDC = m_picg.GetDC(); 
 CDC dcMem; 
 CRect rect; 
 BITMAP bm;// 
 int i,j,r,g,b,w; 
 long int warna; 
 char str[5]; 
 HBITMAP hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(), 
 "ibra.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 
  UpdateData();
  g = m_nilau;
  b = 0;
  r = 0;
  w = r+(g<<8)+(b<<16);
   
  dcMem.SetPixel(j,i,w);
  } 

 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);
}

void CPrak2Dlg::blue() // fungsi untuk mengisi kolom bagian warna biru
{
 UpdateData();
 CDC* pDC = m_picb.GetDC(); 
 CDC dcMem; 
 CRect rect; 
 BITMAP bm;// 
 int i,j,r,g,b,w; 
 long int warna; 
 char str[5]; 
 HBITMAP hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(), 
 "ibra.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 
  UpdateData();
  g = 0;
  b = m_nilao;
  r = 0;
  w = r+(g<<8)+(b<<16);
   
  dcMem.SetPixel(j,i,w);
  } 

 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);
}

1 komentar: