Neler yeni
Türkiye'nin En Güncel Forum Sitesi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı yada giriş yapmalısınız. Forum üye olmak tamamen ücretsizdir.

/ Resim Üzerine Yazı Yazmak /

ByOnur58

Kayıtlı Üye
MFC Üyesi
  • Üyelik Tarihi
    7 Ocak 2015
  • Mesajlar
    2,113
  • MFC Puanı
    10
  • MFC Seviyesi

Merhaba arkadaşlar,

Bu dersimizde sizlerle resim üzerine yazı yazabileceğimiz ve yeni resmi kaydedebileceğimiz bir program yapacağız.

Programın kodlarını teker teker anlatmam uzun süreceğinden size projenin kodlarını ve kaynak dosyasını vereyim, anlamadığınız kod veya kod parçası olursa yorum yaparsınız yardımcı olurum.


Kod:
Kod:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace ResimUzerineYaziEkleme
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        Color yaziRengi;
        Font yaziTipi;
        Bitmap yeniResim;
        Point konum;
        string dosyaYolu = "";
        bool YaziYazilDiMi = false;
        int maxx = 0, maxy = 100;
        private **** btnYaziRengi_Click(object sender, EventArgs e)
        {
            if (colorDialog1.ShowDialog() == DialogResult.OK)
            {
                yaziRengi = colorDialog1.Color;
                trkBSaydamlik.Enabled = true;
                btnYaziRengiGoster.BackColor = Color.FromArgb(int.Parse(trkBSaydamlik.Value.ToString()), yaziRengi);
                btnYaziRengiGoster.FlatAppearance.BorderColor = yaziRengi;
                if (YaziYazilDiMi)
                {
                    YaziYaz();

                }
            }
        }

        private **** btnResimSec_Click(object sender, EventArgs e)
        {
            oFDResimSec.Title = "Resim Seç...";
            oFDResimSec.FileName = "";
            oFDResimSec.Filter = " Resim Dosyaları | *.jpg; *.png; *. bmp; ";
            if (oFDResimSec.ShowDialog() == DialogResult.OK)
            {
                dosyaYolu = oFDResimSec.FileName;
                pcBResim.Image = Image.FromFile(dosyaYolu);
                maxx = int.Parse(pcBResim.Image.Width.ToString());
                maxy = int.Parse(pcBResim.Image.Height.ToString());
                numericUpDownX.Maximum = maxx;
                numericUpDownY.Maximum = maxy;
            }
        }

        private **** btnYaziTipi_Click(object sender, EventArgs e)
        {
            if (fontDialog1.ShowDialog() == DialogResult.OK)
            {

                yaziTipi = fontDialog1.Font;
                trkBSaydamlik.Enabled = true;
                btnYaziRengiGoster.BackColor = Color.FromArgb(int.Parse(trkBSaydamlik.Value.ToString()), fontDialog1.Color);
                if (YaziYazilDiMi)
                {
                    YaziYaz();

                }
            }

        }
        **** YaziYaz()
        {
            try
            {
                if (yaziRengi != null && yaziTipi != null && dosyaYolu != "" && txtYazilacakYazi.Text != "")
                {
                    konum.X = int.Parse(numericUpDownX.Value.ToString());
                    konum.Y = int.Parse(numericUpDownY.Value.ToString());
                    yeniResim = new Bitmap(dosyaYolu);
                    Brush firca = new LinearGradientBrush(new Point(1, 1), new Point(100, 100), Color.FromArgb(trkBSaydamlik.Value, yaziRengi), Color.FromArgb(trkBSaydamlik.Value, yaziRengi));

                    Graphics gr = Graphics.FromImage(yeniResim);
                    gr.RotateTransform(float.Parse(numericUpDownR.Value.ToString()));
                    gr.DrawString(txtYazilacakYazi.Text, yaziTipi, firca, konum);
                    gr.RotateTransform(-float.Parse(numericUpDownR.Value.ToString()));
                    pcBResim.Image = yeniResim;
                    YaziYazilDiMi = true;
                }
                else if (dosyaYolu == "")
                {
                    MessageBox.Show("Yazı Yazmak İstediğiniz Resmi Seçiniz...", "Uyarı..!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else if (txtYazilacakYazi.Text == "")
                {
                    MessageBox.Show("Yazmak İstediğiniz Yazıyı Giriniz...", "Uyarı..!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else if (yaziTipi == null)
                {
                    MessageBox.Show("Yazı Tipini Seçiniz...", "Uyarı..!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                else if (yaziRengi == null)
                {
                    MessageBox.Show("Yazı Rengini Seçiniz...", "Uyarı..!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }



            }
            catch (Exception hata)
            {
                MessageBox.Show(hata.Message.ToString(), "Sistem Kaynaklı Hata..!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private **** btnYaz_Click(object sender, EventArgs e)
        {
            YaziYaz();
        }

        private **** trkBSaydamlik_Scroll(object sender, EventArgs e)
        {

            lblSaydamlik.Text = "% " + trkBSaydamlik.Value;
            btnYaziRengiGoster.BackColor = Color.FromArgb(int.Parse(trkBSaydamlik.Value.ToString()), yaziRengi);
            if (YaziYazilDiMi)
            {
                YaziYaz();

            }

        }
        private **** Form1_Load(object sender, EventArgs e)
        {
            trkBSaydamlik.Enabled = false;
            btnYaziRengiGoster.FlatAppearance.BorderColor = Color.FromArgb(0, 255, 255, 255);
        }

        private **** btnYaziRengiGoster_Click(object sender, EventArgs e)
        {
            if (colorDialog1.ShowDialog() == DialogResult.OK)
            {
                yaziRengi = colorDialog1.Color;
                trkBSaydamlik.Enabled = true;
                btnYaziRengiGoster.BackColor = Color.FromArgb(int.Parse(trkBSaydamlik.Value.ToString()), yaziRengi);
                btnYaziRengiGoster.FlatAppearance.BorderColor = yaziRengi;
                if (YaziYazilDiMi)
                {
                    YaziYaz();

                }
            }
        }

        private **** btnKayit_Click(object sender, EventArgs e)
        {
            try
            {
                saveFileDialog1.Filter = "Resim Dosyası|*.png;";

                if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    pcBResim.Image.Save(saveFileDialog1.FileName);
                }
            }
            catch (Exception hata)
            {
                MessageBox.Show(hata.Message.ToString(), "Sistem Kaynaklı Hata..!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private **** numericUpDownX_ValueChanged(object sender, EventArgs e)
        {
            if (YaziYazilDiMi)
            {
                YaziYaz();

            }
        }

        private **** numericUpDownY_ValueChanged(object sender, EventArgs e)
        {
            if (YaziYazilDiMi)
            {
                YaziYaz();

            }
        }

        private **** txtYazilacakYazi_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                if (YaziYazilDiMi)
                {
                    YaziYaz();
                }
            }
        }

        private **** numericUpDownR_ValueChanged(object sender, EventArgs e)
        {
            if (YaziYazilDiMi)
            {
                YaziYaz();

            }
        }
    }
}
 
Üst Alt