• Web sitemizin içeriğine ve tüm hizmetlerimize erişim sağlamak için Web sitemize kayıt olmalı ya da giriş yapmalısınız. Web sitemize üye olmak tamamen ücretsizdir.
  • Sohbetokey.com ile canlı okey oynamaya ne dersin? Hem sohbet et, hem mobil okey oyna!
  • Soru mu? Sorun mu? ''Bir Sorum Var?'' sistemimiz aktiftir. Paylaşın beraber çözüm üretelim.

/ Resim Üzerine Yazı Yazmak /

Üyelik Tarihi
7 Ocak 2015
Konular
4,091
Mesajlar
4,274
MFC Puanı
40
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