Program: Mini Paint zawierający funkcję rysowania linii krzywej lub prostej.
Wersja platformowa: w wyznaczonej przez użytkownika grubości jak i kolorze. Dodatkowo obrazek można zapisać w formacie „.bmp” oraz otworzyć. Występuje również opcja wyczyszczenia ekranu.
Kompilator: Microsoft Visual Studio / Silverlight
Kod programu:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Budrewicz_grA_lab1
{
public partial class Form1 : Form
{
Graphics rysunek;
Color kolorlinii = Color.Black;
private Pen pióro = new Pen(Color.Black, 2);
Point punktPocz;
bool trybRysowania = false;
bool trybLinii = false; //false - dowolna, true - prosta
public Form1()
{
InitializeComponent();
poleRysowania.Image = new Bitmap(poleRysowania.Width,poleRysowania.Height);
rysunek = Graphics.FromImage(poleRysowania.Image);
pióro.EndCap = System.Drawing.Drawing2D.LineCap.Round;
pióro.StartCap = System.Drawing.Drawing2D.LineCap.Round;
}
private void poleRysowania_MouseDown(object sender, MouseEventArgs e)
{
punktPocz = e.Location;
trybRysowania = true;
}
private void poleRysowania_MouseMove(object sender, MouseEventArgs e)
{
if (trybRysowania && !trybLinii)
{
rysunek.DrawLine(pióro, punktPocz, e.Location);
poleRysowania.Refresh();
punktPocz = e.Location;
}
}
private void poleRysowania_MouseUp(object sender, MouseEventArgs e)
{
if (trybRysowania && trybLinii)
{
rysunek.DrawLine(pióro, punktPocz, e.Location);
poleRysowania.Refresh();
}
trybRysowania = false;
}
private void poleRysowania_Click(object sender, EventArgs e)
{
}
private void rdbCzarny_CheckedChanged(object sender, EventArgs e)
{
pióro.Color = Color.Black;
}
private void rdbRed_CheckedChanged(object sender, EventArgs e)
{
pióro.Color = Color.Red;
}
private void btnZapis_Click(object sender, EventArgs e)
{
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "bmp|*.bmp";
dlg.ShowDialog();
if(dlg.FileName != "")
poleRysowania.Image.Save(dlg.FileName);
}
private void rdbGreen_CheckedChanged(object sender, EventArgs e)
{
pióro.Color = Color.Green;
}
private void rdbBlue_CheckedChanged(object sender, EventArgs e)
{
pióro.Color = Color.Blue;
}
private void btnOdczyt_Click(object sender, EventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "bmp|*.bmp";
dlg.ShowDialog();
if (dlg.FileName != "")
{
poleRysowania.Image = new Bitmap(dlg.FileName);
rysunek = Graphics.FromImage(poleRysowania.Image);
}
}
private void tbGrubość_Scroll(object sender, EventArgs e)
{
pióro.Width = tbGrubość.Value;
}
private void btnCzyść_Click(object sender, EventArgs e)
{
rysunek.Clear(Color.White);
poleRysowania.Refresh();
}
private void rdbProsta_CheckedChanged(object sender, EventArgs e)
{
trybLinii = true;
}
private void rdbDowolna_CheckedChanged(object sender, EventArgs e)
{
trybLinii = false;
}
}
}