KingDZ 變菜鳥,每日一個C#小執行個體之—百葉窗圖片展示

來源:互聯網
上載者:User

這回給大家做的一個如下:

看到了嗎?哈哈,我們C# 也可以做出來很好的效果哦,我們下面開始吧。

首先大家要熟悉 Bitmap  的用法,因為我們這次就是用到了這種位元影像。。還有可能需要大家瞭解一些GDI的繪圖操作,以方便我們這節課程的應用。首先我們先直接給 PictrueBox 指定一張圖片。

好了,下面的一個技巧就是 直接將  PictrueBox  裡面的圖片複製到 Bitmap 裡面去 這麼著我們就可以很簡單的去操作這張圖片了。

            background = (Bitmap)pic.Image.Clone();  //複製圖片到 Bitmap 中去。

好了,下面我們將這張圖片的像素拆開。

int dw = background.Width / 10;            //按照每個圖片30個像素分解圖片int dh = background.Height;             //圖片的高度Graphics g = pic.CreateGraphics();      //建立一個 GraphicsPoint[] myPoint = new Point[10];        //得到一個座標數組for (int x = 0; x < 10; x++)             {    myPoint[x].Y = 0;    myPoint[x].X = x * dw;}

好了,我已經稍微寫了一些注釋,其實,簡單的理解一下,就是說我們將這張圖片  給分解開了,為下面的重繪做準備。

百葉窗,顧名思義,就是一張圖片分成幾部分,然後依次展示即可。

//開始重繪    Bitmap bitmap = new Bitmap(background.Width, background.Height);    //迴圈分解成了多少張圖片    for (int i = 0; i < dw; i++)    {        //取上面資料中對應的座標點        for (int j = 0; j < 10; j++)        {            for (int k = 0; k < dh; k++)            {                bitmap.SetPixel(myPoint[j].X + i, myPoint[j].Y + k, background.GetPixel(myPoint[j].X + i, myPoint[j].Y + k));                //SetPixel  (X座標,Y座標,這個點的顏色)                //開始重繪            }        }        pic.Refresh();   //不斷的重新整理pic,出現頁面假死現象,其實可以用多線程解決        pic.Image = bitmap;    }

好了,現在我們其實主要需要理解的就是,上面的那三層迴圈了,最外面的是迴圈每一個  分解後的圖片的 X座標【可以這麼理解,就是每個小圖片的原點X座標】

第二個迴圈代表的是  每個小圖片的 像素,大家可以自己看一下,其實就是用  bitmap 不斷的取像素,然後一點點的重繪圖片。

頁面這麼著實現,會造成假死現象,大家可以使用多線程的方法,最佳化我們的代碼。

好了,就說這麼多巴,大家可以自己實現縱向百葉窗效果。

代碼下載

ManyPic.rar

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.