怎么实现QQ的头像 上线是亮的下线是灰色的效果 是用2套图片吗 ?

zyhserry 2009-08-31 09:31:47
如题!
请教
...全文
743 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyhserry 2009-09-02
  • 打赏
  • 举报
回复
void MakeBlackAndwhite(CImage* image)
{
if (image->IsNull())
return;

if (!image->IsIndexed())
{
//直接修改像素颜色
COLORREF pixel;
int maxY = image->GetHeight(), maxX = image->GetWidth();
byte r,g,b,avg;
for (int x=0; x<maxX; x++)
{
for (int y=0; y<maxY; y++)
{
pixel = image->GetPixel(x,y);
r = GetRValue(pixel);
g = GetGValue(pixel);
b = GetBValue(pixel);
avg = (int)((r + g + b)/3);
image->SetPixelRGB(x,y,avg,avg,avg);
}
}
}
else
{
// 获取并修改颜色表
int MaxColors = image->GetMaxColorTableEntries();
RGBQUAD* ColorTable;
ColorTable = new RGBQUAD[MaxColors];
image->GetColorTable(0,MaxColors,ColorTable);
for (int i=0; i<MaxColors; i++)
{
int avg = (ColorTable[i].rgbBlue + ColorTable[i].rgbGreen + ColorTable[i].rgbRed)/3;
ColorTable[i].rgbBlue = avg;
ColorTable[i].rgbGreen = avg;
ColorTable[i].rgbRed = avg;
}
image->SetColorTable(0,MaxColors,ColorTable);
delete[] ColorTable;
}
}

我找到答案了,用一套图片就行了。。。
使用CImage来实现
zyhserry 2009-09-01
  • 打赏
  • 举报
回复
能不能给个例子啊 :P
wu_qing_yun 2009-08-31
  • 打赏
  • 举报
回复
很简单,GDI+的色彩变换能实现
warsour 2009-08-31
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 vv1133 的回复:]
是彩色图像转成黑白图像吧
[/Quote]
这个做起来简单,好方法,呵呵~
Noak_ark 2009-08-31
  • 打赏
  • 举报
回复
应该是直接处理的图片
vv1133 2009-08-31
  • 打赏
  • 举报
回复
是彩色图像转成黑白图像吧
zyq5945 2009-08-31
  • 打赏
  • 举报
回复
我就知道CCS中图像处理中滤镜可以做到一张图片出两种效果。
majiaking5 2009-08-31
  • 打赏
  • 举报
回复
应该是灰度图处理的,不然自定义上传的头像怎么做2套出来。
ccpaishi 2009-08-31
  • 打赏
  • 举报
回复
如果简单的实现可以是两套图片,但是QQ的处理自定义图片应该是做了灰度处理,应该是一套图片的两种显示。
m_tornado 2009-08-31
  • 打赏
  • 举报
回复
你到qq的文件夹下找找不就能看到了么?不明白~~

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧