加载中…
个人资料
彼岸花开
彼岸花开
  • 博客等级:
  • 博客积分:0
  • 博客访问:942
  • 关注人气:17
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

在C#中实现图片的百叶窗效果

(2009-03-14 17:48:09)
标签:

百叶窗

it

分类: c#

百叶窗有两种显示效果,一种是垂直百叶窗,另一种是水平百叶窗。

 

实现百叶窗显示图像有两种方式:一是根据窗口或图像的高度或宽度和定制的百叶窗显示条宽度计算百叶窗的显示的条数量;二是根据窗口或图像的高度或宽度和定制的百叶窗显示条数量计算百叶窗的显示的条宽度。

垂直百叶窗实现代码如下:

 

private void button1_Click(object sender, EventArgs e)
{
   //垂直百叶窗显示图像
    try
    {
        MyBitmap (Bitmap)this.pictureBox1.Image.Clone();
        int dw MyBitmap.Width 30;
        int dh MyBitmap.Height;
        Graphics this.pictureBox1.CreateGraphics();
        g.Clear(Color.Gray);
        Point[] MyPoint new Point[30];
        for (int 0; 30; x++)
        {
            MyPoint[x].Y 0;
            MyPoint[x].X dw;
        }
        Bitmap bitmap new Bitmap(MyBitmap.Width, MyBitmap.Height);
        for (int 0; dw; i++)
        {
            for (int 0; 30; j++)
            {
                for (int 0; dh; k++)
                {
                    bitmap.SetPixel(MyPoint[j].X i, MyPoint[j].Y k, MyBitmap.GetPixel(MyPoint[j].X i, MyPoint[j].Y k));
                }
            }
            this.pictureBox1.Refresh();
            this.pictureBox1.Image bitmap;
            System.Threading.Thread.Sleep(100);
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message, "信息提示");
    }
}

 

水平百叶窗实现代码如下:

 

private void button3_Click(object sender, EventArgs e)
{
    //水平百叶窗显示图像
    try
    {
        MyBitmap (Bitmap)this.pictureBox1.Image.Clone();
        int dh MyBitmap.Height 20;
        int dw MyBitmap.Width;
        Graphics this.pictureBox1.CreateGraphics();
        g.Clear(Color.Gray);
        Point[] MyPoint new Point[20];
        for (int 0; 20; y++)
        {
            MyPoint[y].X 0;
            MyPoint[y].Y dh;
        }
        Bitmap bitmap new Bitmap(MyBitmap.Width, MyBitmap.Height);
        for (int 0; dh; i++)
        {
            for (int 0; 20; j++)
            {
                for (int 0; dw; k++)
                {
                    bitmap.SetPixel(MyPoint[j].X k, MyPoint[j].Y i, MyBitmap.GetPixel(MyPoint[j].X k, MyPoint[j].Y i));
                }
            }
            this.pictureBox1.Refresh();
            this.pictureBox1.Image bitmap;
            System.Threading.Thread.Sleep(100);
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message, "信息提示");
    }
}

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有