【坑爹的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:

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