问题是:现在已知每个像素的ARGB值,需要半透明显示这个像素矩阵。我本来的思路是利用这个矩阵一个点一个点绘制,可是GDI+中貌似没有一个像素一个像素绘制的函数,必须在Bitmap中SetPixel,然后再绘制这个bitmap。那按照这个思路是否需要建立一个完全透明的位图然后在这个位图基础上SetPixel??请教大牛!还有不用GDI+的话半透明显示这个RGB矩阵有方便的方法吗?

解决方案 »

  1.   

    INT iWidth = bitmap.GetWidth();
    INT iHeight = bitmap.GetHeight();
    Color color, colorTemp;
    for(INT iRow = 0; iRow < iHeight; iRow++)
    {
       for(INT iColumn = 0; iColumn < iWidth; iColumn++)
       {
          bitmap.GetPixel(iColumn, iRow, &color);
          colorTemp.SetValue(color.MakeARGB(
             (BYTE)(255 * iColumn / iWidth), 
             color.GetRed(),
             color.GetGreen(),
             color.GetBlue()));
          bitmap.SetPixel(iColumn, iRow, colorTemp);
       }
    }
    // First draw a wide black line.
    Pen pen(Color(255, 0, 0, 0), 25);
    graphics.DrawLine(&pen, 10, 35, 200, 35);
    // Now draw the modified bitmap.
    graphics.DrawImage(&bitmap, 30, 0, iWidth, iHeight);
      

  2.   

    MSDN这段代码看到了 能给些自己的建议吗?谢谢