Resim Çizim Programı (Ms Paint) — C#

Resim Çizim Programı (Ms Paint) — C#

Anasayfa Formu

[code lang=”csharp”]

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;//www.gorselprogramlama.com

using System.Windows.Forms;

namespace Resim_Cizim_Programi

{

public partial class frmMain : Form

{

public frmMain()

{

InitializeComponent();

}

public static int sayfaSayisi = 0; // Toplam açık çalışma sayfası

public static string sayfaBasligi = ""; // Oluşturulacak yeni sayfanın başlığı

public static Size sayfaSize = Size.Empty; // Oluşturulacak yeni sayfanın boyutu

private void yeniToolStripMenuItem_Click(object sender, EventArgs e)

{

frmNew NewForm = new frmNew(); // Yeni çalışma sayfası için bilgiler alınıyor.

NewForm.txtAdi.Text = "Çalışma Sayfası " + (sayfaSayisi + 1).ToString();

NewForm.ShowDialog();//www.gorselprogramlama.com

if (sayfaSize != Size.Empty) // Oluştur butonuna basılmadıkça forumu getirme

{

frmMDI MDIForm = new frmMDI(); // Alınan veriler ile yeni sayfalar oluşturuluyor

MDIForm.MdiParent = this;

MDIForm.Size = sayfaSize;

MDIForm.Text = sayfaBasligi;

MDIForm.Show();

sayfaSayisi++;//www.gorselprogramlama.com

}

sayfaSize = Size.Empty; // Kayıtlı veriler kullanıldıktan sonra sıfırlansın

sayfaBasligi = String.Empty;

}

private void pencereleriKapatToolStripMenuItem_Click(object sender, EventArgs e)

{

while (this.MdiChildren.Length > 0) // Tüm MDI formları teker teker kapatır.

{

this.MdiChildren[0].Close();

}

sayfaSayisi = 0;

}//www.gorselprogramlama.com

private void pencereleriKüçütToolStripMenuItem_Click(object sender, EventArgs e)

{

for (int i = 0; i < this.MdiChildren.Length; i++) // Tüm MDI Formları minimize eder.

{

this.MdiChildren[i].WindowState = FormWindowState.Minimized;

}

}

private void frmMain_Load(object sender, EventArgs e)

{

}

}//www.gorselprogramlama.com

}

[/code]

Yeni çalışma sayfası Formu

[code lang=”csharp”]

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 Resim_Cizim_Programi

{

public partial class frmNew : Form

{

public frmNew()

{

InitializeComponent();

}

//www.gorselprogramlama.com

public static int defaultSayfaDegeri = 0;

private void frmNew_Load(object sender, EventArgs e)

{

// Default olarak piksel seçeneğini seçtir

cbGenOlcu.SelectedIndex = 0;

cbYukOlcu.SelectedIndex = 0;

//this.txtAdi.Text = "Çalışma Sayfası " + defaultSayfaDegeri.ToString();

}

private void btnOlustur_Click(object sender, EventArgs e)

{

if (txtAdi.Text == "")

{

MessageBox.Show("Çalışma sayfasının adını boş geçemezsiniz.","Dikkat");

}

else if (txtGenislik.Text == "" || txtYukseklik.Text == "")

{

MessageBox.Show("Genişlik ve yükseklik değerlerini boş geçemezsiniz.","Dikkat");

}

else

{

// 1cm 18 px

int Size_X, Size_Y; // Yeni MDI form için bilgiler ana forma gönderiliyor.

if (cbGenOlcu.SelectedIndex == 0)

Size_X = Convert.ToInt32(txtGenislik.Text);

else Size_X = Convert.ToInt32(txtGenislik.Text) * 18;

if (cbYukOlcu.SelectedIndex == 0)

Size_Y = Convert.ToInt32(txtYukseklik.Text);

else Size_Y = Convert.ToInt32(txtYukseklik.Text) * 18;

frmMain.sayfaBasligi = txtAdi.Text;

frmMain.sayfaSize = new Size(Size_X, Size_Y);

this.Close();

} //www.gorselprogramlama.com

}

}

}

[/code]

çalışma sayfası Formu

[code lang=”csharp”]

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 Resim_Cizim_Programi

{

public partial class frmMDI : Form

{

public frmMDI()

{

InitializeComponent();

}

private Color Renk = new Color(); // Çizim rengi.

private float CizgiKalinligi = 0; // Çizim yapıcak kalemin çizgi kalınlığı

private Pen Kalem; // Çizim yapacağımız kalem

private Graphics Cizim; // Çizim yapıcak nesne

private Bitmap Resim; // Kayıt edilecek resim

private Point Nokta1, Nokta2; // Çizim yapılacak noktalar (arasını çizicek)

private bool CizimDurumu = false; // Çizim yapılda durumu

public static string dosyaKayitYolu = ""; // Dosyanın kayıt edileceği yol

public static bool arkaPlanResmi; // Kayıt ederken Arka planda resim görünsün mü ?

public static Color arkaPlanRengi; // Kayıt ederken Arka planda backColor özelliği

private void frmMDI_FormClosing(object sender, FormClosingEventArgs e)

{

frmMain.sayfaSayisi -= 1; // Kapanınca mevcut sayfası azalt.

}

//www.gorselprogramlama.com

private void frmMDI_Load(object sender, EventArgs e)

{

// Tüm renkleri listeye yükler.

foreach (System.Reflection.PropertyInfo prop in typeof(Color).GetProperties())

{

if (prop.PropertyType.FullName == "System.Drawing.Color")

cbColor.Items.Add(prop.Name);

}

cbColor.Text = "Black"; // Default olarak siyah rengi seç.

cbResimBoyutu.SelectedIndex = 1; // Sığdırmayı Default olarak ayarla.

cbCizgi.SelectedIndex = 2; // Default olarak 3 kalınlığını seçtirdik

Kalem = new Pen(Renk, CizgiKalinligi); // Default Kalem

pbRenk.BackColor = Color.Black; // Default Color

Resim = new Bitmap(pbCalisma.Size.Width, pbCalisma.Size.Height); // Resimin boyutu belirlendi.

Cizim = Graphics.FromImage(Resim); // İlk açılışta null olmaması için arkaplan atadık

} //www.gorselprogramlama.com

private void btnResimYukle_Click(object sender, EventArgs e)

{

if (Nokta2 != new Point(0,0)) // İkinci nokta alınırsa yani çizim yapıldıysa

{

DialogResult sonuc = MessageBox.Show("Eğer yeni bir resim yüklerseniz varolan çizimleriniz silinecektir. Yinede yüklemek ister misiniz ?", "Dikkat", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

if (sonuc == DialogResult.Yes) // Eğer evet denirse

{

pbCalisma.Invalidate(); // Graphics silme

btnCizim.Text = "Yeni Çizim";

CizimDurumu = false; // Çizimi Durdur

Nokta1 = new Point(0, 0); // Koordinatları sıfırla

Nokta2 = new Point(0, 0);

if (openFileDialog1.ShowDialog() == DialogResult.OK) // Resim Yükleme.

{

pbCalisma.ImageLocation = openFileDialog1.FileName;

Resim = new Bitmap(pbCalisma.ImageLocation); // picture boxtaki resimi alıyoruz

Cizim = Graphics.FromImage(Resim); // Arka plan resimini atıyoruz

}

}

}

else // ilk resim için 🙂

{

if (openFileDialog1.ShowDialog() == DialogResult.OK) // Resim Yükleme.

{

pbCalisma.ImageLocation = openFileDialog1.FileName;

Resim = new Bitmap(pbCalisma.ImageLocation); // picture boxtaki resimi alıyoruz

Cizim = Graphics.FromImage(Resim); // Arka plan resimini atıyoruz

}

}

}

private void cbResimBoyutu_SelectedIndexChanged(object sender, EventArgs e)

{

if (Nokta2 != new Point(0,0))

{

DialogResult sonuc = MessageBox.Show("Eğer resim boyutunu değiştirirseniz varolan çizimleriniz silinecektir. Yinede değiştirmek ister misiniz ?", "Dikkat", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

if (sonuc == DialogResult.Yes)

{

pbCalisma.Invalidate(); // Graphics silme

btnCizim.Text = "Yeni Çizim";

CizimDurumu = false; // Çizimi Durdur

Nokta1 = new Point(0, 0); // Koordinatları sıfırla

Nokta2 = new Point(0, 0);

resimBoyutuDegistir();//www.gorselprogramlama.com

}

}

else // ilk boyutlandırma

{

resimBoyutuDegistir();

}

}

private void resimBoyutuDegistir()

{

switch (cbResimBoyutu.SelectedIndex) // Resim Boyutu değiştirme.

{

case 0: pbCalisma.SizeMode = PictureBoxSizeMode.Normal; // Normal

break;

case 1: pbCalisma.SizeMode = PictureBoxSizeMode.StretchImage; // Sığdır

break;

case 2: pbCalisma.SizeMode = PictureBoxSizeMode.AutoSize; // Otomatik

break;

case 3: pbCalisma.SizeMode = PictureBoxSizeMode.CenterImage; // Ortala

break;

case 4: pbCalisma.SizeMode = PictureBoxSizeMode.Zoom; // Yakınlaştır

break;//www.gorselprogramlama.com

}

}

private void cbColor_SelectedIndexChanged(object sender, EventArgs e)

{

Renk = Color.FromName(cbColor.SelectedItem.ToString()); // Seçili Rengi ayarla

Kalem = new Pen(Renk, CizgiKalinligi);

pbRenk.BackColor = Color.FromName(cbColor.Text);

}

private void cbCizgi_SelectedIndexChanged(object sender, EventArgs e)

{

CizgiKalinligi = float.Parse(cbCizgi.Text); // Seçili çizgi kalınlığı

Kalem = new Pen(Renk, CizgiKalinligi);//www.gorselprogramlama.com

}

private void pbCalisma_MouseClick(object sender, MouseEventArgs e)

{

if (Nokta1 == new Point(0, 0) && CizimDurumu) // İlk nokta atıldığında

{

Nokta1 = new Point(e.X, e.Y);

//Cizim = pbCalisma.CreateGraphics(); // Pb’ın üzeri çizilecek

}

else if (Nokta1 != new Point(0, 0) && CizimDurumu) // Sonraki noktalar için

{

Nokta2 = new Point(e.X, e.Y);

Cizim.DrawLine(Kalem, Nokta1, Nokta2); // İki nokta arasını çiz

Nokta1 = Nokta2;

}

pbCalisma.Image = Resim;

}

private void btnCizim_Click(object sender, EventArgs e)

{

if (btnCizim.Text == "Yeni Çizim") // Çizim Yapma Butonu

{

btnCizim.Text = "Bitir";

CizimDurumu = true; // Çizimi Başlat

}

else

{

btnCizim.Text = "Yeni Çizim";

CizimDurumu = false; // Çizimi Durdur

Nokta1 = new Point(0,0); // Koordinatları sıfırla

}

}

private void btnKaydet_Click(object sender, EventArgs e)

{

frmSave Save = new frmSave(); // Save Formu

frmSave.dosyaAdi = this.Text; // Dosya Adını Default olarak gönderdik

Save.ShowDialog(); // Formu aç

if (dosyaKayitYolu != "") // Bir dosya kayıt edilirse

{

if (arkaPlanResmi) // Arka Plan resimi kayıt edilmek istenirse

{

pbCalisma.Image.Save(dosyaKayitYolu + ".jpg");

}

else // istenmezse

{

pbCalisma.Image.Save(dosyaKayitYolu + ".jpg");

}

}//www.gorselprogramlama.com

}

private void btnCizgiSil_Click(object sender, EventArgs e)

{

DialogResult sonuc = MessageBox.Show("Çizgileri silmek istediğinize emin misiniz ?" ,"Dikkat",MessageBoxButtons.YesNo,MessageBoxIcon.Question);

if (sonuc == DialogResult.Yes) // Eğer evet denirse

{

pbCalisma.Invalidate(); // Graphicsteki çizgileri Sil

btnCizim.Text = "Yeni Çizim";

CizimDurumu = false; // Çizimi Durdur

Nokta1 = new Point(0, 0); // Koordinatları sıfırla

Nokta2 = new Point(0, 0);

}

}

}

}

[/code]

Kaydet sayfası Formu

[code lang=”csharp”]

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 Resim_Cizim_Programi

{

public partial class frmSave : Form

{

public frmSave()

{

InitializeComponent();

}

public static string dosyaAdi = ""; // Default olarak gösterilecek dosya adı

private void frmSave_Load(object sender, EventArgs e)

{

cbResim.SelectedIndex = 0; // Default olarak resim görülsün seçildi.

foreach (System.Reflection.PropertyInfo prop in typeof(Color).GetProperties()) // Tüm renkler

{

if (prop.PropertyType.FullName == "System.Drawing.Color")

cbColor.Items.Add(prop.Name);

}

cbColor.SelectedIndex = 0; // Default olarak Transparent seçildi.

//dosyaKaydet.Filter = "JPEG|*jpeg"; // Sadece JPEG olarak kayıt yapılsın

}

private void cbColor_SelectedIndexChanged(object sender, EventArgs e)

{

pbRenk.BackColor = Color.FromName(cbColor.Text); // Rengin ne olduğu yanda gösterilsin

}

//www.gorselprogramlama.com

private void btnKayit_Click(object sender, EventArgs e)

{

dosyaKaydet.FileName = dosyaAdi; // Default dosya adı alındı

if (dosyaKaydet.ShowDialog() == DialogResult.OK) // Eğer ok denirse

{

if (cbResim.SelectedIndex == 0) // Resim arka planda gösterilsin mi ?

frmMDI.arkaPlanResmi = true;

else

{

frmMDI.arkaPlanResmi = false; // Arka Planda resim görün sün mü ?

frmMDI.arkaPlanRengi = Color.FromName(cbColor.Text); // Dosyanın arka plan rengi

}

frmMDI.dosyaKayitYolu = dosyaKaydet.FileName; // Dosyanın yolu gönderiliyor

this.Close();

}

}

private void cbResim_SelectedIndexChanged(object sender, EventArgs e)

{

if (cbResim.SelectedIndex == 0) // Arka Planda resim görünecek ise arka plan renk değiştirmeyi iptal edeliö

cbColor.Enabled = false;

else

cbColor.Enabled = true;

}//www.gorselprogramlama.com

}

}

<a href="https://www.gorselprogramlama.com/wp-content/uploads/2013/11/resim_cizim_programi6.jpg"></a><a href="https://www.gorselprogramlama.com/wp-content/uploads/2013/11/resim_cizim_programi7.jpg"></a><a href="https://www.gorselprogramlama.com/wp-content/uploads/2013/11/resim_cizim_programi8.jpg"></a><a href="https://www.gorselprogramlama.com/wp-content/uploads/2013/11/resim_cizim_programi9.jpg"></a>

[/code]

Ümit Demirtaş

Projeyi İNDİR

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir