Sabtu, 28 Maret 2015

Pemograman C# Membuat Paint Sederhana

Bagaimana sih cara membuat aplikasi paint sederhana.
dibawah ini akan di jelaskan bagaimana cara membuat aplikasi sederhana menggunakan bahasa pemograman c# dengan Windows Form Application di visual studio 2012

ini cara nya, selahkan diikuti dan di kembangkan lagi
1. buka Visual studio 2012
2. pilih new project lalu Windows Forms Application, kasih judul dan oke 
 3. ambil tools apa saja yang akan kita gunakan di toolbox lalu tarik ke form1 anda
 4. desain form1 seperti ini

x adalah garis horizontal dan y adalah garis vertikal,
L adalah panjang garis yang telah kita buat.
 
untuk warna kita memakai menggunakan color wheel dan juga ada color dialog
sedangkan line, elips, rectange dan clear, kita beri gambar yang dimasukkan dari background image. 
 
 5. jika sudah masukkan program ini
 
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;
using System.Runtime.InteropServices;
using System.Drawing.Imaging;
using System.IO;
using System.Threading.Tasks;

namespace Mypaint1
{
    public partial class Form1 : Form
    {
        private Graphics objGrp; //objek graphic
        public bool shouldPaint = false; //inisialisasi mulai gambar
        public bool line, rectang, ellipse, pen;
        private Pen penaAjaib = new Pen(Color.Black);
        int X1, Y1, X2, Y2, X, Y,tebal;
        double XY;
        bool choose;
        Color paintcolor;


        public Form1()
        {
            InitializeComponent();

        }
      

        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
             choose = true;
        }

        private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
        {
             choose = false;
        }

        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            if (choose)
            {
                Bitmap bmp = (Bitmap)pictureBox1.Image.Clone();
                paintcolor = bmp.GetPixel(e.X, e.Y);
                red.Value = paintcolor.R;//value trackbar warna merah
                green.Value = paintcolor.G;//value trackbar warna green
                blue.Value = paintcolor.B;//value trackbar warna biru
                alpha.Value = paintcolor.A;//value trackbar warna alpha
                redval.Text = paintcolor.R.ToString();//value label warna merah
                greenval.Text = paintcolor.G.ToString();//value label warna merah
                blueval.Text = paintcolor.B.ToString();//value label warna merah
                alphaval.Text = paintcolor.A.ToString();//value label warna merah
                pictureBox2.BackColor = paintcolor;
                penaAjaib.Color = paintcolor;
                button1.BackColor = paintcolor;
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (colorDialog1.ShowDialog() == DialogResult.OK)
            {
               button1.BackColor = colorDialog1.Color;
               penaAjaib.Color = colorDialog1.Color;
               pictureBox2.BackColor = colorDialog1.Color;
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            objGrp = pictureBox3.CreateGraphics();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            btnLine.BackColor = Color.Green;
            btnLine.ForeColor = Color.White;
            btnEllips.BackColor = Color.Empty;
            btnEllips.ForeColor = Color.Empty;
            btnRect.BackColor = Color.Empty;
            btnRect.ForeColor = Color.Empty;
            erase.BackColor = Color.Empty;
            erase.ForeColor = Color.Empty;
            line = true; rectang = false; ellipse = false; pen = false;
        }

        private void button3_Click(object sender, EventArgs e)
        {
            btnEllips.BackColor = Color.Green;
            btnEllips.ForeColor = Color.White;
            btnLine.BackColor = Color.Empty;
            btnLine.ForeColor = Color.Empty;
            btnRect.BackColor = Color.Empty;
            btnRect.ForeColor = Color.Empty;
            erase.BackColor = Color.Empty;
            erase.ForeColor = Color.Empty;
            ellipse = true; line = false; rectang = false; pen = false;
        }

        private void button4_Click(object sender, EventArgs e)
        {
            btnEllips.BackColor = Color.Empty;
            btnEllips.ForeColor = Color.Empty;
            btnLine.BackColor = Color.Empty;
            btnLine.ForeColor = Color.Empty;
            btnRect.BackColor = Color.Green;
            btnRect.ForeColor = Color.White;
            erase.BackColor = Color.Empty;
            erase.ForeColor = Color.Empty;
            rectang = true; ellipse = false; line = false; pen = false;
        }
        private void erase_Click(object sender, EventArgs e)
        {
            btnEllips.BackColor = Color.Empty;
            btnEllips.ForeColor = Color.Empty;
            btnLine.BackColor = Color.Empty;
            btnLine.ForeColor = Color.Empty;
            btnRect.BackColor = Color.Empty;
            btnRect.ForeColor = Color.Empty;
            erase.BackColor = Color.Green;
            erase.ForeColor = Color.White;
            rectang = false; ellipse = false; line = false; pen = true;
            //penaAjaib.Color = Color.White;
        }       

        private void pictureBox3_MouseDown(object sender, MouseEventArgs e)
        {
            this.Cursor = Cursors.Cross;//mengaktifkan kursor jenis cross
            if (e.Button == MouseButtons.Left)
            {
                shouldPaint = true;
            }
            X1 = e.X;
            Y1 = e.Y;
        }

        private void pictureBox3_MouseUp(object sender, MouseEventArgs e)
        {
            this.Cursor = Cursors.Default;//mengaktifkan kursor default
            shouldPaint = false;
            textBox1.Text = Convert.ToString(X2);
            textBox2.Text = Convert.ToString(Y2);
            XY = Math.Sqrt((X2 * X2) + (Y2 * Y2));
            textBox3.Text = Convert.ToString(XY);
        }

        private void pictureBox3_MouseClick(object sender, MouseEventArgs e)
        {
            if (shouldPaint == true)
            {
                X = e.X;
                Y = e.Y;
                X2 = e.X - X1;
                Y2 = Y1 - e.Y;
                if (rectang == true)
                {
                    objGrp.DrawRectangle(penaAjaib, X1, Y1, X2, -Y2);
                }
                if (ellipse == true)
                {
                    objGrp.DrawEllipse(penaAjaib, X1, Y1, X2, -Y2);
                }
                if (line == true)
                {
                    objGrp.DrawLine(penaAjaib, X1, Y1, e.X, e.Y);
                }
                //if (pen == true)
                //{
                //    objGrp.FillEllipse(new SolidBrush(Color.White), X1, Y1, 4*tebal, 4*tebal);
                //}
            }
        }

        private void New_Click(object sender, EventArgs e)
        {
            pictureBox3.Refresh();
            pictureBox3.Image = null;
        }

        private void Open_Click(object sender, EventArgs e)
        {
            OpenFileDialog o = new OpenFileDialog();
            o.Filter = "Png files|*.png|jpeg files|*jpg|bitmaps|*.bmp";
            if (o.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                pictureBox3.Image = (Image)Image.FromFile(o.FileName).Clone();
            }
        }

        private void Save_Click(object sender, EventArgs e)
        {
            Bitmap bmp = new Bitmap(pictureBox3.Width, pictureBox3.Height);
            Graphics g = Graphics.FromImage(bmp);
            Rectangle rect = pictureBox3.RectangleToScreen(pictureBox3.ClientRectangle);
            g.CopyFromScreen(rect.Location, Point.Empty, pictureBox3.Size);
            g.Dispose();
            SaveFileDialog s = new SaveFileDialog();
            s.Filter = "Png files|*.png|jpeg files|*jpg|bitmaps|*.bmp";
            if (s.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                if (File.Exists(s.FileName))///untuk menyimpan file
                {
                    File.Delete(s.FileName);
                }
                if (s.FileName.Contains(".jpg"))//simpan dengan format jpeg
                {
                    bmp.Save(s.FileName, ImageFormat.Jpeg);
                }
                else if (s.FileName.Contains(".png"))//simpan dengan format png
                {
                    bmp.Save(s.FileName, ImageFormat.Png);
                }
                else if (s.FileName.Contains(".bmp"))//simpan dengan format bmp
                {
                    bmp.Save(s.FileName, ImageFormat.Bmp);
                }
            }
        }

        private void trackBar1_Scroll(object sender, EventArgs e)
        {
            tebal = trackBar1.Value;//tebal garis
            penaAjaib.Width = tebal;
        }

        private void pictureBox3_MouseMove(object sender, MouseEventArgs e)
        {
            if (shouldPaint == true)
            {
                X = e.X;
                Y = e.Y;
                X2 = e.X - X1;
                Y2 = Y1 - e.Y;
                if (pen == true)
                {
                    objGrp.FillEllipse(new SolidBrush(Color.White), 5 * tebal, 5 * tebal, 5 * tebal, 5 * tebal);
                    objGrp.FillEllipse(new SolidBrush(Color.White), e.X, e.Y, X2, Y2);
                }
            }
        }
    }
}

6. jika sudah lakukan running program

 klik tombol save:

 
 Ini hasilnya:
emikian tutorial program c# untuk membuat paint sederhana di visual studio menggunakan windows form application.
semoga bermanfaat untuk kita semua.
wassalamualaikum wr.wr

 

Tidak ada komentar:

Posting Komentar