benshepherd icon

Paint Spray Effect

benshepherd | PRO | 01/12/13 08:22:16 PM UTC | 0 ⭐ | 1659 👁️ | Never ⏰ | []
C# |

1.66 KB

|

None

|

0 👍

/

0 👎

public partial class Form1 : Form
{
    private bool isMouseDown;
    Bitmap canvas;
 
    public Form1()
    {
        InitializeComponent();
    }
 
    private void Form1_Load(object sender, EventArgs e)
    {
        this.Size = new Size(500, 500);
        this.MouseDown += new MouseEventHandler(Form1_MouseDown);
        this.MouseUp += new MouseEventHandler(Form1_MouseUp);
        this.MouseMove += new MouseEventHandler(Form1_MouseMove);
 
        canvas = new Bitmap(this.Size.Width, this.Size.Height);
    }
 
    private void Form1_MouseDown(object sender, MouseEventArgs e)
    {
        isMouseDown = true;
    }
 
    private void Form1_MouseUp(object sender, MouseEventArgs e)
    {
        isMouseDown = false;
    }
 
    private void Form1_MouseMove(object sender, MouseEventArgs e)
    {
        if (isMouseDown)
        {
            Color c = Color.Black;
            Random r = new Random();
            int x = e.X, y = e.Y, s = r.Next(10);
 
            for (int i = 0; i < s; i++)
            {
                try
                {
                    switch (r.Next(8))
                    {
                        case 0:
                            canvas.SetPixel(x + s, y, c);
                            break;
                        case 1:
                            canvas.SetPixel(x - s, y, c);
                            break;
                        case 2:
                            canvas.SetPixel(x, y + s, c);
                            break;
                        case 3:
                            canvas.SetPixel(x, y + -s, c);
                            break;
                        case 4:
                            canvas.SetPixel(x + s, y + s, c);
                            break;
                        case 5:
                            canvas.SetPixel(x - s, y + s, c);
                            break;
                        case 6:
                            canvas.SetPixel(x - s, y - s, c);
                            break;
                        case 7:
                            canvas.SetPixel(x - s, y - s, c);
                            break;
                    }
                }
                catch { }
            }
 
            canvas.SetPixel(e.X, e.Y, Color.Black);
 
            using (Graphics g = this.CreateGraphics())
            {
                g.DrawImage(canvas, Point.Empty);
            }
        }
    }

Comments