百叶窗效果显示图像

Posted feiyucha

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了百叶窗效果显示图像相关的知识,希望对你有一定的参考价值。

实现效果:

  技术分享图片

知识运用:

  Bitmap类的GetPixel和SetPixel方法

  public Color GetPixel (int x,int y)    //获取bitmap图像中指定像素的颜色

  public void SetPixel (int x, int y,Color color)  //设置bitmap图像中指定像素的颜色

实现代码:

        private void button1_Click(object sender, EventArgs e)
        {
            Bitmap myBitmap = (Bitmap)this.BackgroundImage.Clone();     //使用窗体背景的副本创建Bitmap对象
            int intWidth = myBitmap.Width;                              //记录图片的宽度
            int intHeight = myBitmap.Height/20;                         //记录图片的制定高度
            Graphics myGraphics = this.CreateGraphics();                //创建窗体的Graphics对象
            myGraphics.Clear(Color.WhiteSmoke);                         //使用指定颜色清空窗体背景
            Point[] myPoints=new Point[20];                             //定义数组
            for (int i = 0; i < 20; i++)                                //记录百叶窗个节点的位置
            {
                myPoints[i].X = 0;
                myPoints[i].Y = i * intHeight;
            }
            Bitmap bitmap=new Bitmap(myBitmap.Width,myBitmap.Height);   //创建Bitmap对象
            for (int m = 0; m < intHeight; m++)                         
            {
                for (int n = 0; n < 20; n++)
                {
                    for (int i = 0; i < intWidth; i++)
                    {
                        bitmap.SetPixel(myPoints[n].X + i, myPoints[n].Y + m,
                            myBitmap.GetPixel(myPoints[n].X + i, myPoints[n].Y + m));
                    }
                }
                this.Refresh();                                         //绘制无效
                this.BackgroundImage = bitmap;                          //显示百叶窗效果
                System.Threading.Thread.Sleep(100);                     //线程挂起
            }
        }

  

以上是关于百叶窗效果显示图像的主要内容,如果未能解决你的问题,请参考以下文章

css百叶窗效果适用于哪一种网页上

pixijs shader 制作百叶窗效果

javascript设计模式实践之职责链--具有百叶窗切换图片效果的JQuery插件

如何使用WPF 实现百叶窗切换动画

百叶窗效果

WPF Clip实现百叶窗