Jumat, 04 Mei 2018

Membuat Aplikasi Image Resizer C#

Aplikasi ini adalah adaptasi dari modul pada mata kuliah Network Programming II. Aplikasi ini dapat me-resize image dengan format .jpg sesuai keinginan, memperbesar atau memperkecil tinggi dan lebar menggunakan toolbox TrackBar ditambah dengan button rotate dan reset.

1. Bahan - bahan toolbox nya ada pada tabel dibawah ini :




2. Tampilan Form





3. Listing Program


Judul Spoiler:

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.Drawing.Imaging;
using System.Drawing.Drawing2D;

namespace image_resizer
{
    public partial class Form1 : Form
    {

        Bitmap newB;
        Image gambar;
        Boolean opened = false;

        public Form1()
        {
            InitializeComponent();
            this.StartPosition = FormStartPosition.CenterScreen;
            this.FormBorderStyle = FormBorderStyle.FixedSingle;
            this.MaximizeBox = false;
            this.MinimizeBox = false;
            tsize.MaxLength = 3;
            tsize.Enabled = false;
            trackBar1.Enabled = false;
            trackBar2.Enabled = false;
            btnResize.Enabled = false;
            btnReset.Enabled = false;
            btnRotate.Enabled = false;
            bsimpan.Enabled = false;
            panel1.AutoScroll = true;
            
        }

        void bukagambar()
        {
            DialogResult bukagambar = openFileDialog1.ShowDialog();
            if (bukagambar == DialogResult.OK)
            {
                gambar = Image.FromFile(openFileDialog1.FileName);
                newB = new Bitmap(openFileDialog1.FileName);
                picture.Image = gambar;
                opened = true;
                picture.SizeMode = PictureBoxSizeMode.StretchImage;
                picture.ImageLocation = openFileDialog1.FileName;
                ltinggi.Text = gambar.Height.ToString();
                llebar.Text = gambar.Width.ToString();
                trackBar1.Value = picture.Size.Width;
                trackBar2.Value = picture.Size.Height;
                trackBar1.Enabled = true;
                trackBar2.Enabled = true;
                btnResize.Enabled = true;
                btnReset.Enabled = true;
                btnRotate.Enabled = true;
                bsimpan.Enabled = true;
                tsize.Enabled = true;
                tsize.Clear();
            }
        }

        void ubahsize()
        {
            if (tsize.Text != "")
            {
                int persen = Convert.ToInt32(tsize.Text);
                int tinggi = (persen * Convert.ToInt32(ltinggi.Text)) / 100;
                int lebar = (persen * Convert.ToInt32(llebar.Text)) / 100;
                ltinggi.Text = Convert.ToString(tinggi);
                llebar.Text = Convert.ToString(lebar);
                trackBar1.Value = lebar;
                trackBar2.Value = tinggi;
                picture.Size = new Size(picture.Size.Width, trackBar1.Value);
                picture.Size = new Size(picture.Size.Height, trackBar2.Value);
            }
        }

        void simpangambar()
        {
            if (picture.Image != null)
            {
                int tinggi = Convert.ToInt32(ltinggi.Text);
                int lebar = Convert.ToInt32(llebar.Text);
                Bitmap ukuranbaru = new Bitmap(lebar, tinggi,
                System.Drawing.Imaging.PixelFormat.Format24bppRgb);
                Graphics gbr = Graphics.FromImage(ukuranbaru);
                gbr.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighSpeed;
                gbr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighSpeed;
                gbr.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                gbr.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighSpeed;
                Rectangle rect = new Rectangle(0, 0, lebar, tinggi);
                gbr.DrawImage(gambar, rect);
                SaveFileDialog simpan = new SaveFileDialog();
                simpan.Filter = "Jpeg Format|*.Jpg";
                simpan.RestoreDirectory = true;

                if (simpan.ShowDialog() != DialogResult.Cancel)
                {
                    this.picture.Image.Save(simpan.FileName);
                    ukuranbaru.Dispose();
                    MessageBox.Show("Gambar Berhasil Disimpan", "Info");
                }
            }

            else
            {
                MessageBox.Show("Gambar Masih Kosong");
            }
        }

        private void Bbuka_Click(object sender, EventArgs e)
        {
            bukagambar();
        }

        private void btnResize_Click(object sender, EventArgs e)
        {
            ubahsize();
        }

        private void bsimpan_Click(object sender, EventArgs e)
        {
            simpangambar();
        }

        private void trackBar1_Scroll(object sender, EventArgs e)
        {
            picture.Size = new Size(trackBar1.Value, picture.Size.Height);
            llebar.Text = trackBar1.Value.ToString();
        }


        private void trackBar2_Scroll(object sender, EventArgs e)
        {
            picture.Size = new Size(picture.Size.Width, trackBar2.Value);
            ltinggi.Text = trackBar2.Value.ToString();
        }

        private void btnRotate_Click(object sender, EventArgs e)
        {
            newB.RotateFlip(RotateFlipType.Rotate90FlipXY);
            picture.Image = newB;
            ltinggi.Text = gambar.Width.ToString();
            llebar.Text = gambar.Height.ToString();
            trackBar1.Value = picture.Size.Width;
            trackBar2.Value = picture.Size.Height;
            picture.Size = new Size(picture.Size.Width, trackBar2.Value);
            picture.Size = new Size(picture.Size.Height, trackBar1.Value);
        }

        private void btnReset_Click(object sender, EventArgs e)
        {
            if (opened)
            {
                gambar = Image.FromFile(openFileDialog1.FileName);
                newB = new Bitmap(openFileDialog1.FileName);
                picture.Image = gambar;
                opened = true;
                picture.SizeMode = PictureBoxSizeMode.StretchImage;
                picture.ImageLocation = openFileDialog1.FileName;
                ltinggi.Text = gambar.Height.ToString();
                llebar.Text = gambar.Width.ToString();
                trackBar1.Value = picture.Size.Width;
                trackBar2.Value = picture.Size.Height;
                int tinggi = Convert.ToInt32(ltinggi.Text);
                int lebar = Convert.ToInt32(llebar.Text);
                ltinggi.Text = Convert.ToString(tinggi);
                llebar.Text = Convert.ToString(lebar);
                trackBar1.Value = lebar;
                trackBar2.Value = tinggi;
                picture.Size = new Size(picture.Size.Width, trackBar1.Value);
                picture.Size = new Size(picture.Size.Height, trackBar2.Value);
            }

            else { }
        }
    }

}



3. Running Program







Aplikasi Notepad C#

Kali ini saya akan memberikan tutorial mengenai progrm berbahasa C# yaitu notepad, Aplikasi ini dibuat untuk membuka file yang berextension .txt, pertama yang harus dipersiapkan yaitu komponen toolbox untuk mengisi form diantaranya ada pada tabel dibawah :

1. tabel komponen Form1












2. tabel komponen Form Find (frmFind)






3. tabel komponen Form About (frmAbout)








bagi yang belum tau cara add form dalam satu project bisa dilihat gambar dibawah ini :


Klik pada project yang dibuat yaitu notepad pilih add lalu pilih new item nanti tampil jendela baru seperti gambar dibawah :



Pilih Windows Form lalu isi nama sesuai keinginan setelah selesai klik add.

4. Tampilan Form1



5. Tampilan Form Find



6. Tampilan Form About


6. Listing Program untuk Form1

Form1:
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;
//tambahkan
using Microsoft.Win32;
using System.IO;
using System.Threading.Tasks;
using System.Text.RegularExpressions;

namespace Notepad
{
    public partial class Form1 : Form
    {
        public static string Findtext;
        public static Boolean matchcase;
        int startpos;


        public Form1()
        {
            InitializeComponent();
        }

        void bukafile() //fungsi untuk membuka file ".txt"
        {
            OpenFileDialog buka = new OpenFileDialog();
            buka.DefaultExt = ".txt";
            buka.Filter = " Text Documents | *.txt";
            buka.FileName = "";
            buka.ValidateNames = true;
            buka.Multiselect = false;

            if (buka.ShowDialog() == DialogResult.OK)
            {
                string fileTerpilih = buka.FileName;
                if (fileTerpilih != "")
                {
                    rtinput.LoadFile(fileTerpilih, RichTextBoxStreamType.PlainText);
                }
            }
        }


        void simpanfile() //fungsi untuk menyimpan file
        {
            SaveFileDialog simpan = new SaveFileDialog();
            simpan.Filter = "Text Documents | *.txt";
            simpan.RestoreDirectory = true;

            if (simpan.ShowDialog() != DialogResult.Cancel)
            {
                StreamWriter filesimpan = new StreamWriter(File.Create(simpan.FileName));
                filesimpan.Write(rtinput.Text);
                filesimpan.Dispose();
            }
        }



        private void Form1_Load(object sender, EventArgs e)
        {

            startpos = 0;
            if (String.IsNullOrEmpty(rtinput.Text))
            {

                findToolStripMenuItem.Enabled = false;
                findNextToolStripMenuItem.Enabled = false;
            }

            else
            {
                findToolStripMenuItem.Enabled = true;
            }
        }


        //====================== ISI MENUSTRIP "FILE" ==============================//


        private void sNew_Click(object sender, EventArgs e)
        {
            rtinput.Clear();
        }


        private void bbukafile_Click(object sender, EventArgs e)
        {
            if (rtinput.Text != "")
            {
                var pesan = MessageBox.Show("File belum tersimpan, Simpan terlebih dahulu???", "konfirmasi",
                MessageBoxButtons.YesNo, MessageBoxIcon.Warning);

                if (pesan == DialogResult.Yes)
                {
                    simpanfile();
                    bukafile();
                }

                else
                {
                    bukafile();
                }
            }

            else
            {
                bukafile();
            }
        }

        private void bsimpan_Click(object sender, EventArgs e)
        {
            simpanfile();
        }

        private void exitToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }


        //======================== ISI MENU EDIT ========================//



        private void aboutToolStripMenuItem_Click(object sender, EventArgs e)
        {
            using (frmAbout frm = new frmAbout())
            {
                frm.ShowDialog();
            }
        }

        private void undoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            rtinput.Undo();
        }

        private void redoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            rtinput.Redo();
        }

        private void cutToolStripMenuItem_Click(object sender, EventArgs e)
        {
            rtinput.Cut();
        }

        private void copyToolStripMenuItem_Click(object sender, EventArgs e)
        {
            rtinput.Copy();
        }

        private void pasteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            rtinput.Paste();
        }

        private void deleteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            rtinput.SelectedText = "";
        }

        private void selectAllToolStripMenuItem_Click(object sender, EventArgs e)
        {
            rtinput.SelectAll();
        }


        private void findToolStripMenuItem_Click(object sender, EventArgs e)
        {

            frmFind f1 = new frmFind();
            f1.ShowDialog();
            //ShowForm(frmFind.inst);

                   

            if (startpos >= 0)
            {
                if (matchcase == true)
                {
                    if (rtinput.Text.IndexOf(Findtext) == -1)
                    {
                        MessageBox.Show("Masukan kata yang ingin dicari");
                        startpos = 0;
                    }

                    else
                    {
                        rtinput.Find(Findtext, (startpos + 1), rtinput.Text.Length, RichTextBoxFinds.MatchCase);
                        startpos = rtinput.Text.IndexOf(Findtext, startpos) + 1;
                    }
                }

                else
                {
                    if (rtinput.Text.IndexOf(Findtext) == -1)
                    {
                        MessageBox.Show("Masukan kata yang ingin dicari");
                        startpos = 0;
                    }

                    else
                    {
                        rtinput.Find(Findtext, (startpos + 1), rtinput.Text.Length, RichTextBoxFinds.None);
                        startpos = rtinput.Text.IndexOf(Findtext, startpos) + 1;
                    }
                }
            }

            if (startpos == 0)
            {
                MessageBox.Show("pencarian Selesai");
                startpos = 0;
            }

            findNextToolStripMenuItem.Enabled = true;
        }



        private void findNextToolStripMenuItem_Click(object sender, EventArgs e)
        {

            if (startpos >= 0)
            {
                if (matchcase == true)
                {
                    if (rtinput.Text.IndexOf(Findtext) == -1)
                    {
                        MessageBox.Show("Masukan kata yang ingin dicari");
                        startpos = 0;
                    }

                    else
                    {
                        rtinput.Find(Findtext, startpos, rtinput.Text.Length, RichTextBoxFinds.None);
                        startpos = rtinput.Text.IndexOf(Findtext, startpos) + 1;
                    }
                }

                else
                {
                    if (rtinput.Text.IndexOf(Findtext) == -1)
                    {
                        MessageBox.Show("Masukan kata yang ingin dicari");
                        startpos = 0;
                    }

                    else
                    {
                        rtinput.Find(Findtext, startpos, rtinput.Text.Length, RichTextBoxFinds.None);
                        startpos = rtinput.Text.IndexOf(Findtext, startpos) + 1;
                    }
                }
            }

            if (startpos == 0)
            {
                MessageBox.Show("pencarian Selesai");
                startpos = 0;
            }
        }


        private void dateTimeToolStripMenuItem_Click(object sender, EventArgs e)
        {
            rtinput.Text = DateTime.Now.ToString();
        }

        private void rtinput_TextChanged(object sender, EventArgs e)
        {
            startpos = 0;

            if (String.IsNullOrEmpty(rtinput.Text))
            {

                findToolStripMenuItem.Enabled = false;
                findNextToolStripMenuItem.Enabled = false;
            }

            else
            {
                findToolStripMenuItem.Enabled = true;
            }
        }

        private void wordToolStripMenuItem_Click(object sender, EventArgs e)
        {
         
            if(wordToolStripMenuItem.Checked == true)
            {
                rtinput.WordWrap = true;
            }

            else
            {
                rtinput.WordWrap = false;
            }
        }

        private void fontToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            FontDialog font1 = new FontDialog();
            DialogResult openFont = font1.ShowDialog();

            if (openFont == DialogResult.OK)
            { 
                rtinput.Font = font1.Font;
            }
        }

        private void backgroundColorToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ColorDialog clr = new ColorDialog();
            DialogResult openClr = clr.ShowDialog();

            if (openClr == DialogResult.OK)
            {
                rtinput.BackColor = clr.Color;
            }
        }
    }
}



7. Listing Program untuk Form Find

Form Find:
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 Notepad
{
    public partial class frmFind : Form
    {
     
        public frmFind()
        {
            InitializeComponent();
            //Form1 frm1 = new Form1();
            //frm1.Visible = true;
         
         
        }

        private void frmFind_Load(object sender, EventArgs e)
        {
            button1.Enabled = false;
         
        }
     
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(textBox1.Text))
            {
                button1.Enabled = false;
            }

            else
            {
                button1.Enabled = true;
            }
        }


        private void button1_Click(object sender, EventArgs e)
        {

            if (checkBox1.Checked == true)
            {
                Form1.matchcase = true;
            }

            else
            {
                checkBox1.Checked = false;
            }

            Form1.Findtext = textBox1.Text;
            this.Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Form1.Findtext = "";
            this.Close();
         
        }
    }
}



8. Listing Program untuk Form About

Form About:

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 Notepad
{
    public partial class frmAbout : Form
    {
        public frmAbout()
        {
            InitializeComponent();
        }

        private void frmAbout_Load(object sender, EventArgs e)
        {
            lbProductName.Text = string.Format("Product Name : {0}", Application.ProductName);
            lbProductVersion.Text = string.Format("Version : {0}", Application.ProductVersion);
            lbCopyright.Text = "Copyright ©  2018 By Visual Studio 2010";
        }

        private void btnOK_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}



9. Running Program