发布一张品质比较高的 图片..如何生成一张品质比较低的图片做初显示用..很多晚上都有着个效果..貌似图片是被马赛克了.这样的图片很小.

解决方案 »

  1.   

    参考:http://www.cnblogs.com/zhjzwl/archive/2009/03/02/1401561.html
    //以马赛克效果显示图像
                try
    {
    int dw = MyBitmap.Width / 50;
    int dh = MyBitmap.Height / 50;
    Graphics g = this.pictureBox1.CreateGraphics();
    g.Clear(Color.Gray);
    Point[] MyPoint = new Point[2500];
    for (int x = 0; x < 50; x++)
    for (int y = 0; y < 50; y++)
    {
    MyPoint[x * 50 + y].X = x * dw;
    MyPoint[x * 50 + y].Y = y * dh;
    }
    Bitmap bitmap = new Bitmap(MyBitmap.Width, MyBitmap.Height);
    for (int i = 0; i < 10000; i++)
    {
    System.Random MyRandom = new Random();
    int iPos = MyRandom.Next(2500);
    for (int m = 0; m < dw; m++)
    for (int n = 0; n < dh; n++)
    {
    bitmap.SetPixel(MyPoint[iPos].X + m, MyPoint[iPos].Y + n, MyBitmap.GetPixel(MyPoint[iPos].X + m, MyPoint[iPos].Y + n));
    }
    this.pictureBox1.Refresh();
    this.pictureBox1.Image = bitmap;
    }
    for (int i = 0; i < 2500; i++)
    for (int m = 0; m < dw; m++)
    for (int n = 0; n < dh; n++)
    {
    bitmap.SetPixel(MyPoint[i].X + m, MyPoint[i].Y + n, MyBitmap.GetPixel(MyPoint[i].X + m, MyPoint[i].Y + n));
    }
    this.pictureBox1.Refresh();
    this.pictureBox1.Image = bitmap;
    }
    catch (Exception ex)
    {
    MessageBox.Show(ex.Message, "信息提示");
    }
    }