【坑爹的c#】用bitmap和picturebox实现多张png的透明叠加

问题的产生:多个picturebox重叠时,上面的picturebox即使设置transparent,但是透出来的也是form的底色,而不是透出下面那个picturebox的图案。摔!
解决的方法: 将多张png绘在同一个bitmap上,再显示在一个picturebox里。奇怪的是,网上的教程都有个去透明色的语句,我没有用,却也可以成功。
bm:大家的图都绘在bm上
btm:每次要绘的图

类变量:(e.g. class name :linyy1188)

  public Bitmap bm ;

构造函数:

 bm = new Bitmap(861,627);

成员函数:
1.复制下这次要绘的图像
2.复制下以前会好的图像
3.h是被绘的
4.把image绘到h上
5.update一下bm

 public void Overlap(Bitmap btm)
        {
             Bitmap image = new Bitmap(btm);
             Bitmap h = new Bitmap(bm);
             Graphics g = Graphics.FromImage(h);
            g.DrawImage(image, new Rectangle(0, 0, 861, 627));
            bm = h;
        }

调用:(我很多图片都放在resources里了)

Overlap(new Bitmap(Properties.Resources.XXX))

显示:

this.pictureBox1.Image = linyy1188.bm;


总结:
有些步骤多余,但是抱着成功就好的信念
reference:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章