怎么选择一个矩形区域,然后只改变这一部分的颜色(GDI+)

如何选择一个矩形区域,然后只改变这一部分的颜色(GDI+)
本帖最后由 nabasasun 于 2013-03-01 13:37:27 编辑
怎么选择一个矩形区域,然后只改变这一部分的颜色(GDI+)


INT w =image->GetWidth();
INT h =image->GetHeight();

Color color,color2,colorT;

for(int i=0;i<w;i++)
{
  for(int j=0;j<h;j++)
  {
image->GetPixel(i,j,&color);
int r=255-color.GetRed();
int g=255-color.GetGreen();
int b=255-color.GetBlue();

colorT.SetValue(color2.MakeARGB(255,r,g,b));
image->SetPixel(i,j,colorT);
  }

//在这里显示image

}


这票代码只能够改变整个图片,而不能够改变局部,和上面的图有很大差异。应该怎么修改代码

------解决方案--------------------
for(int i=0;i<w;i++)
{
  for(int j=0;j<h;j++)

ij的其实位置改掉

改成你选择区域的起始位置

用buttondown  的point 起始

up未终止点
------解决方案--------------------
引用:
引用:是用鼠标拖动选定的矩形么?
改一下i和j的范围不就可以了?
for(int i=(矩形左);i<(矩形右);i++)
{
  for(int j=(矩形顶);j<(矩形底);j++)
...
那么如果是多边形或者封闭路径的呢

整张图形变色后的图形生成画刷  填充封闭路径
怎么选择一个矩形区域,然后只改变这一部分的颜色(GDI+)
------解决方案--------------------
引用:
引用:也就是说换个角度 不是只改变指定封闭区域的颜色
而是把原图片处理(可以动态处理,也可动态处理了保存在内存留用,也可以外面通过图片处理软件处理了生成另一张图片)
然后在需要绘制的区域内重绘一层(图片生成画刷填充指定区域)

恩,所以说你这个怎么实现

图像的处理 知道吧?
处理后的图像生成TextureBrush  用画刷填充 路径啊
不就可以了吗?