Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2341194
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:07:59

小弟现在需要一个程序其目的,是将Photoshop中的图片的每点的RGB值读取,图像大小为256×256,现在基本问题已经得以解决但是最后运行的时候总是出现各种问题~请高手指点一下,万分感谢~

void CGetRGBView::OnDraw(CDC* pDC)
{
CGetRGBDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
if(state==1)
{CDC dcImage;
if(!dcImage.CreateCompatibleDC(pDC))
return;
BITMAP bm;
m_bitmap.GetBitmap(&bm);
dcImage.SelectObject (&m_bitmap);
pDC->BitBlt
(0,0,bm.bmWidth ,bm.bmHeight ,&dcImage,0,0,SRCCOPY);
HDC hDC=::GetDC(NULL);
int r[256],g[256],b[256],gray[256],x=0;
COLORREF clr;
for(int t=0;t<256;t++)
    for(int j=0;j<256;j++)
{
    clr=::GetPixel(hDC,t,j);
    r[x]=GetRValue(clr);
g[x]=GetGValue(clr);
b[x]=GetBValue(clr);
gray[x]=(int)(r[x]*0.3+g[x]*0.59+b[x]*0.11);

x++;

--------------------next---------------------

阅读(1158) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~