check home phone-call search send

سورس کد برنامه Paint Win به زبان سی شارپ

امروز سورس نرم افزار paint win رو آماده کردیم، paint win یکی از برنامه های کاربردی سیستم ویندوز هست که با زبان برنامه نویسی سی شارپ کدنویسی و در محیط ویژوال استودیو طراحی شده است که پیشنهاد میکنم حتما از این سورس کد در جهت یادگیری و آموزش برنامه نویسی سی شارپ استفاده کنید.
از کدهای این سورس کد میتوانید برای سایر پروژه های نرم افزاری خود استفاده کرده و سطح برنامه نویسی خود را ارتقا دهید.

سورس کد برنامه Paint Win به زبان سی شارپ

سورس کد برنامه Paint Win به زبان سی شارپ

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using System.Text;
using System.IO;
using System.Windows.Forms;
 
// sourcesoft.ir
 
namespace Paint
{
    public partial class Main : Form
    {
        public Main()
        {
            InitializeComponent();
        }
 
        //By Mostafa Bita (tthenry14plus)
        Bitmap bmp_image;
        Graphics g;
        Pen p = new Pen(Brushes.Black, 3);
        LinearGradientBrush linearBr;
        Boolean fill;
        public string action = "قلم";
        public Font font;
        public string text;
        Point start_pnt;
        int width, height, start_pnt_X, start_pnt_Y;
 
        private void Form1_Load(object sender, EventArgs e)
        {
            New_file();
            p.Color = front_def_color.BackColor;
            pictureBox1.Cursor = new Cursor("cross.cur");
        }
 
        void New_file()
        {
            bmp_image = null;
            bmp_image = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            g = Graphics.FromImage(bmp_image);
            g.SmoothingMode = SmoothingMode.HighQuality;
            g.FillRectangle(Brushes.White, new Rectangle(0, 0, bmp_image.Width, bmp_image.Height));
            pictureBox1.Image = bmp_image;
        }
 
        private void panel10_DoubleClick(object sender, EventArgs e)
        {
            Panel panel = (Panel)sender;
            if (colorDialog1.ShowDialog() == DialogResult.OK)
                panel.BackColor = colorDialog1.Color;
            p.Color = front_def_color.BackColor;
        }
 
        private void label1_Click(object sender, EventArgs e)
        {
            Color temp_c=back_def_color.BackColor;
            back_def_color.BackColor= front_def_color.BackColor;
            front_def_color.BackColor = temp_c;
            p.Color = front_def_color.BackColor;
        }
 
        private void panel10_Click(object sender, EventArgs e)
        {
            Panel panel=(Panel)sender;
            front_def_color.BackColor = panel.BackColor;
            p.Color = front_def_color.BackColor;
        }
 
        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            try
            {
                switch (action)
                {
                    case "متن":
                        if (!string.IsNullOrEmpty(text))
                        {
                            pictureBox1.Image = bmp_image;
                            SizeF size = g.MeasureString(text, font);
                            Bitmap temp_bmp0 = new Bitmap(bmp_image);
                            Graphics temp_g0 = Graphics.FromImage(temp_bmp0);
                            linearBr = new LinearGradientBrush(new Rectangle(0, 0, (int)size.Width, (int)size.Height), Color.FromArgb(147, front_def_color.BackColor), Color.FromArgb(147, front_def_color.BackColor), LinearGradientMode.BackwardDiagonal);
                            temp_g0.DrawString(text, font, linearBr, e.X, e.Y);
                            pictureBox1.Image = temp_bmp0;
                        }
                        break;
                    case "قلم":
                        if (e.Button == MouseButtons.Left)
                        {
                            linearBr = new LinearGradientBrush(new Rectangle(0, 0, 4, 4), front_def_color.BackColor, front_def_color.BackColor, LinearGradientMode.BackwardDiagonal);
                            g.FillEllipse(linearBr, (float)e.X - (p.Width / 2), (float)e.Y - (p.Width / 2), p.Width, p.Width);
                        }
                        pictureBox1.Image = bmp_image;
                        break;
                    case "خواندن رنگ":
                        if (e.Button == MouseButtons.Left)
                            front_def_color.BackColor = Color.FromArgb(bmp_image.GetPixel(e.X, e.Y).R, bmp_image.GetPixel(e.X, e.Y).G, bmp_image.GetPixel(e.X, e.Y).B);
                        p.Color = front_def_color.BackColor;
                        break;
                    case "شعاع دایره":
                        pictureBox1.Image = bmp_image;
                        Bitmap temp_bmp = new Bitmap(bmp_image);
                        Graphics temp_g = Graphics.FromImage(temp_bmp);
                        int radius = Math.Max(Math.Abs(start_pnt.X - e.X), Math.Abs(start_pnt.Y - e.Y));
                        if (fill)
                        {
                            linearBr = new LinearGradientBrush(new Rectangle(0, 0, bmp_image.Width, bmp_image.Height), front_def_color.BackColor, front_def_color.BackColor, LinearGradientMode.BackwardDiagonal);
                            temp_g.FillEllipse(linearBr, (float)start_pnt.X - radius, (float)start_pnt.Y - radius, (float)radius * 2, (float)radius * 2);
                        }
                        else
                            temp_g.DrawEllipse(p, (float)start_pnt.X - radius, (float)start_pnt.Y - radius, (float)radius * 2, (float)radius * 2);
                        pictureBox1.Image = temp_bmp;
                        this.toolStripStatusLabel1.Text = radius.ToString();
                        break;
                    case "عرض مربع":
                        pictureBox1.Image = bmp_image;
                        Bitmap temp_bmp2 = new Bitmap(bmp_image);
                        Graphics temp_g2 = Graphics.FromImage(temp_bmp2);
                        temp_g2.DrawLine(p, start_pnt, new Point(e.X, start_pnt.Y));
                        start_pnt_X = Math.Min(e.X, start_pnt.X);
                        width = Math.Abs(e.X - start_pnt.X);
                        pictureBox1.Image = temp_bmp2;
                        this.toolStripStatusLabel1.Text = width.ToString() + "×" + height.ToString();
                        break;
                    case "طول مربع":
                        pictureBox1.Image = bmp_image;
                        Bitmap temp_bmp3 = new Bitmap(bmp_image);
                        Graphics temp_g3 = Graphics.FromImage(temp_bmp3);
                        height = Math.Abs(e.Y - start_pnt.Y);
                        start_pnt_Y = Math.Min(e.Y, start_pnt.Y);
                        if (fill)
                        {
                            linearBr = new LinearGradientBrush(new Rectangle(0, 0, bmp_image.Width, bmp_image.Height), front_def_color.BackColor, front_def_color.BackColor, LinearGradientMode.BackwardDiagonal);
                            temp_g3.FillRectangle(linearBr, new Rectangle(start_pnt_X, start_pnt_Y, width, height));
                        }
                        else
                            temp_g3.DrawRectangle(p, new Rectangle(start_pnt_X, start_pnt_Y, width, height));
                        pictureBox1.Image = temp_bmp3;
                        this.toolStripStatusLabel1.Text = width.ToString() + "×" + height.ToString();
                        break;
                }
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
            }
        }
 
        private void panel14_Click(object sender, EventArgs e)
        {
            Panel panel = (Panel)sender;
            panel14.BorderStyle = panel11.BorderStyle = panel12.BorderStyle = panel13.BorderStyle = panel14.BorderStyle = panel15.BorderStyle = panel16.BorderStyle = BorderStyle.None;
            panel.BorderStyle = BorderStyle.FixedSingle;
            p.Width =int.Parse(panel.Tag.ToString());
        }
 
        private void فایلجدیدToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("از ایجاد فایل جدید اطمینان دارید؟", "", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
                New_file();
        }
 
        private void بازکردنفایلToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                pictureBox1.Image = Image.FromFile( openFileDialog1.FileName);
                bmp_image = new Bitmap(pictureBox1.Image);
                g = Graphics.FromImage(bmp_image);
            }
        }
 
        private void خروجToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Close();
        }
 
        private void ذخیرهکردنعکسToolStripMenuItem_Click(object sender, EventArgs e)
        {
            saveFileDialog1.Filter = "JPEG File (*.jpg)|*.jpg|Bitmap File (*.bmp)|*.bmp|PNG File(*.png)|*.png";
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                switch (Path.GetExtension(saveFileDialog1.FileName))
                {
                    case ".jpg":
                        pictureBox1.Image.Save(saveFileDialog1.FileName, ImageFormat.Jpeg); break;
                    case ".bmp":
                        pictureBox1.Image.Save(saveFileDialog1.FileName, ImageFormat.Bmp); break;
                    case ".png":
                        pictureBox1.Image.Save(saveFileDialog1.FileName, ImageFormat.Png); break;
                }
            }
        }
 
        private void pictureBox2_Click(object sender, EventArgs e)
        {
            Set_border(pictureBox2);
            action = "متن";
            Add_string addStr = new Add_string(font,text);
            addStr.Tag = this;
            addStr.ShowDialog();
        }
//------------------------------------------- SetBorder
        void Set_border(PictureBox picB)
        {
            pictureBox2.BorderStyle = pictureBox3.BorderStyle = pictureBox4.BorderStyle = pictureBox5.BorderStyle = pictureBox6.BorderStyle = pictureBox7.BorderStyle = pictureBox8.BorderStyle = pictureBox9.BorderStyle = BorderStyle.None;
            picB.BorderStyle = BorderStyle.FixedSingle;
        }
 
        private void pictureBox3_Click(object sender, EventArgs e)
        {
            action = "قلم";
            Set_border(pictureBox3);
        }
 
        private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
        {
            try
            {
                switch (action)
                {
                    case "متن":
                        if (!string.IsNullOrEmpty(text))
                        {
                            pictureBox1.Image = bmp_image;
                            linearBr = new LinearGradientBrush(new Rectangle(0, 0, bmp_image.Width, bmp_image.Height), front_def_color.BackColor, front_def_color.BackColor, LinearGradientMode.BackwardDiagonal);
                            g.DrawString(text, font, linearBr, e.X, e.Y);
                        }
                        break;
                    case "قلم":
                        if (e.Button == MouseButtons.Left)
                        {
                            linearBr = new LinearGradientBrush(new Rectangle(0, 0, 4, 4), front_def_color.BackColor, front_def_color.BackColor, LinearGradientMode.BackwardDiagonal);
                            g.FillEllipse(linearBr, (float)e.X - (p.Width / 2), (float)e.Y - (p.Width / 2), p.Width, p.Width);
                        }
                        break;
                    case "نقطه شروع":
                        start_pnt = new Point(e.X, e.Y);
                        action = "خط";
                        break;
                    case "خط":
                        linearBr = new LinearGradientBrush(new Rectangle(0, 0, 4, 4), front_def_color.BackColor, front_def_color.BackColor, LinearGradientMode.BackwardDiagonal);
                        g.DrawLine(p, start_pnt, new Point(e.X, e.Y));
                        start_pnt = new Point(e.X, e.Y);
                        break;
                    case "خواندن رنگ":
                        front_def_color.BackColor = Color.FromArgb(bmp_image.GetPixel(e.X, e.Y).R, bmp_image.GetPixel(e.X, e.Y).G, bmp_image.GetPixel(e.X, e.Y).B);
                        p.Color = front_def_color.BackColor;
                        break;
                    case "نقطه مرکزی دایره":
                        start_pnt = new Point(e.X, e.Y);
                        action = "شعاع دایره";
                        break;
                    case "شعاع دایره":
                        int radius = Math.Max(Math.Abs(start_pnt.X - e.X), Math.Abs(start_pnt.Y - e.Y));
                        if (fill)
                        {
                            linearBr = new LinearGradientBrush(new Rectangle(0, 0, bmp_image.Width, bmp_image.Height), front_def_color.BackColor, front_def_color.BackColor, LinearGradientMode.BackwardDiagonal);
                            g.FillEllipse(linearBr, (float)start_pnt.X - radius, (float)start_pnt.Y - radius, (float)radius * 2, (float)radius * 2);
                        }
                        else
                            g.DrawEllipse(p, (float)start_pnt.X - radius, (float)start_pnt.Y - radius, (float)radius * 2, (float)radius * 2);
                        action = "نقطه مرکزی دایره";
                        break;
                    case "شروع مربع":
                        start_pnt = new Point(e.X, e.Y);
                        action = "عرض مربع";
                        break;
                    case "عرض مربع":
                        action = "طول مربع";
                        break;
                    case "طول مربع":
                        if (fill)
                        {
                            linearBr = new LinearGradientBrush(new Rectangle(0, 0, bmp_image.Width, bmp_image.Height), front_def_color.BackColor, front_def_color.BackColor, LinearGradientMode.BackwardDiagonal);
                            g.FillRectangle(linearBr, new Rectangle(start_pnt_X, start_pnt_Y, width, height));
                        }
                        else
                            g.DrawRectangle(p, new Rectangle(start_pnt_X, start_pnt_Y, width, height));
                        action = "شروع مربع";
                        break;
 
                }
                pictureBox1.Image = bmp_image;
                this.toolStripStatusLabel1.Text = "";
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
            }
        }
 
        private void pictureBox4_Click(object sender, EventArgs e)
        {
            Set_border(pictureBox4);
            action = "نقطه شروع";
        }
 
        private void pictureBox5_Click(object sender, EventArgs e)
        {
            Set_border(pictureBox5);
            action = "خواندن رنگ";
        }
 
        private void pictureBox6_Click(object sender, EventArgs e)
        {
            Set_border(pictureBox6);
            action = "نقطه مرکزی دایره";
            fill = false;
        }
 
        private void pictureBox7_Click(object sender, EventArgs e)
        {
            Set_border(pictureBox7);
            action = "شروع مربع";
            fill = false;
        }
 
        private void pictureBox9_Click(object sender, EventArgs e)
        {
            Set_border(pictureBox9);
            action = "نقطه مرکزی دایره";
            fill = true;
        }
 
        private void pictureBox8_Click(object sender, EventArgs e)
        {
            Set_border(pictureBox8);
            action = "شروع مربع";
            fill = true;
        }
 
        private void pictureBox2_MouseEnter(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "درج متن";
        }
 
        private void pictureBox3_MouseEnter(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "قلم";
        }
 
        private void pictureBox5_MouseEnter(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "تشخیص رنگ";
        }
 
        private void pictureBox4_MouseEnter(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "رسم چند ضلعی";
        }
 
        private void pictureBox6_MouseEnter(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "رسم دایره توخالی";
        }
 
        private void pictureBox7_MouseEnter(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "رسم چهارضلعی توخالی";
        }
 
        private void pictureBox9_MouseEnter(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "رسم دایره توپر";
        }
 
        private void pictureBox8_MouseEnter(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "رسم چهار ضلعی توپر";
        }
 
        private void panel16_MouseEnter(object sender, EventArgs e)
        {
            Panel p=(Panel)sender;
            toolStripStatusLabel1.Text = "قلم اندازه " + p.Tag.ToString();
        }
 
        private void pictureBox8_MouseLeave(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "";
        }
 
        private void label1_MouseEnter(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = "جابجایی رنگ های زیر و زبر";
        }
 
        private void Main_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (MessageBox.Show("آیا قصد خروج از برنامه را دارید؟", "", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
                e.Cancel = false;
            else e.Cancel = true;
        }
    }
}

/> sourceiran.com

دانلــود بـاکـــس

لینک های دانلود در این باکس قرار دارد
img

جهت مشاهده لینک های دانلود ابتدا وارد شده یا ثبت نام کنید

Avatar
پشتیبان سورس ایران 2180 مطلب منتشر شده

در مجموعه سورس ایران سعی می کنیم علاوه بر آموزش برنامه نویسی، به مسائل مرتبط و مهارت های نرم بپردازیم تا بعدهای مختلف را پوشش دهیم.

دیدگاه کاربران

تعداد دیدگاه های کاربران : ۰ دیدگاه
هنوز دیدگاهی ارسال نشده است.


شما با موفقیت در خبرنامه ما عضو شدید