string imagepath = @"c:\a.jpg";
Image wwImage = Image.FromFile(imagepath);ImageList iList.Images.Add(wwImage);
我想给c:\a.jpg加个背景颜色红色(颜色不是固定的) 然后在tvlist中显示
怎么实现
tvlist.ImageList =iList;

解决方案 »

  1.   

    “背景”的定义是什么?大于原始图的部分还是原始图本身的背景?前者很简单,参考1楼的思路就行。如果是后者的话JPG会比较麻烦,要定义哪种颜色是透明色,然后用背景色去替代它。如果可以换成透明背景PNG就会好很多,第一步生成一个同样大小的纯色背景图,第二步把原始图贴上去就OK。
      

  2.   

            /// <summary>
            /// 绘制设置颜色的图标
            /// </summary>
            /// <param name="ico"></param>
            /// <param name="color"></param>
            private Image DrawColorIco(Image ico, Color color)
            {
                
                Bitmap bmp = new Bitmap(ico.Width, ico.Height);
                Rectangle colorRec = new Rectangle(0,12,16,4);
                using(System.Drawing.SolidBrush fillBrush = new System.Drawing.SolidBrush(color))
                using (Graphics g = Graphics.FromImage(bmp))
                {
                    g.DrawImage(ico, 0, 0, bmp.Width, bmp.Height);
                    g.FillRectangle(fillBrush, colorRec);
                }           
                
                return bmp;        }以上代码是绘制动态设置字体颜色的图标。
    应该有帮助。