11 Nisan 2023 Salı
Görüntü Dragdrop_Boyutla_Kırp
EXE INDIR
KOD İNDİR
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Drawing.Imaging; using System.Drawing.Drawing2D; using System.Diagnostics; using static System.Net.WebRequestMethods; using System.Security.Cryptography; using System.Security.Policy; using static System.Windows.Forms.VisualStyles.VisualStyleElement; using static System.Windows.Forms.VisualStyles.VisualStyleElement.Button; using System.Diagnostics.Eventing.Reader; using static System.Windows.Forms.VisualStyles.VisualStyleElement.ToolBar; using BoyutBul.Properties; namespace BoyutBul { public partial class Form1 : Form { public Form1() { InitializeComponent(); Pic2.DragEnter += PicMevcut_DragEnter; // PicMevcut Dragdrop Bileşenini Başlatma kodu Pic2.DragDrop += PicMevcut_DragDrop; } #region DEĞİŞKENLER int cropX; int cropY; int cropWidth; int cropHeight; public Pen cropPen; public DashStyle cropDashStyle = DashStyle.DashDot; string dosyaYolu = string.Empty; Bitmap bmp = null; public string eni; public string boy; #endregion #region FORM OLAYLARI private void Form1_FormClosed(object sender, FormClosedEventArgs e) { if (this.WindowState == FormWindowState.Maximized || this.WindowState == FormWindowState.Minimized) { this.WindowState = FormWindowState.Normal; this.Location = new Point(300, 10); Settings.Default.frmYeri = this.Location; Settings.Default.frmBoyu = this.Size; Settings.Default.ChkUyar = ChkUyar.Checked; Settings.Default.Save(); } else { Settings.Default.frmBoyu = this.Size; Settings.Default.frmYeri = this.Location; Settings.Default.ChkUyar = ChkUyar.Checked; Settings.Default.Save(); } } private void Form1_Load(object sender, EventArgs e) { //picBox1.AllowDrop = true; this.AllowDrop = true; Pic2.AllowDrop=true; this.Size = Settings.Default.frmBoyu; this.Location = Settings.Default.frmYeri; ChkUyar.Checked = Settings.Default.ChkUyar ; BalonGoster(); } #endregion #region METOD OLAYLARI (VOID) private void BoyutunuAl() { picBox1.Image = Image.FromFile(LblYol.Text); picBox1.SizeMode = PictureBoxSizeMode.Zoom; var iSize = new FileInfo(LblYol.Text).Length; picBox1.ImageLocation = dosyaYolu; if ((iSize / 1204) <= 1024) { picBox1.Image = Image.FromFile(LblYol.Text); picBox1.SizeMode = PictureBoxSizeMode.StretchImage; int eni = picBox1.Image.Size.Width; int boy = picBox1.Image.Size.Height; OrjTxt.Text = eni + " px" + " x " + boy + " px"; string en = eni.ToString(); Entxt.Text = en + " px"; string b = boy.ToString(); BoyTxt.Text = b + " px"; int byt = Convert.ToInt32(iSize); bytTxt.Text = byt.ToString("###,###,###") + " bayt"; int x = Convert.ToInt32(iSize / 1024); boyutTxt.Text = x.ToString("###,###,###") + " Kb"; BoyutBilgisi(); } else { picBox1.Image = Image.FromFile(LblYol.Text); //PictureBox1.SizeMode = PictureBoxSizeMode.Zoom; bmp = new Bitmap(LblYol.Text); picBox1.SizeMode = PictureBoxSizeMode.StretchImage; //Zoom; //picturebox nesnesinin sizemode özelliği strech olarak ayarlanır. //Bunun sebebi ise seçilen resmin picturebox nesnesinde tam olarak gözükmesini sağlamaktır. picBox1.Image = bmp; int byt = Convert.ToInt32(iSize); bytTxt.Text = byt.ToString("###,###,###") + " bayt"; int x = Convert.ToInt32(iSize / 1024); boyutTxt.Text = x.ToString("###,###,###") + " MB"; BoyutBilgisi(); } } private void BoyutBilgisi() { int eni = picBox1.Image.Size.Width; int boy = picBox1.Image.Size.Height; int result = (int)NumUpDown1.Value; int yen = eni / result; int yby = boy / result; KrpTxtEn.Text = Convert.ToString(yen); KrpTxtBoy.Text = Convert.ToString(yby); //MessageBox.Show("Eni : " + eni + " "+ "Boyu: " + boy ); OrjTxt.Text = eni + " px" + " x " + boy + " px"; string en = eni.ToString(); Entxt.Text = en + " px"; string b = boy.ToString(); BoyTxt.Text = b + " px"; if (ChkUyar.Checked) { MessageBox.Show(en + " ve " + b + " Orjinal boyutların " + "\n" + result + "/2 oranında küçültüldü"); } BtnBoyutlandir.PerformClick(); BtnPanoyaAl.PerformClick(); //panoya alınıyor BtnPndanYapistir.PerformClick(); // if (ChkUyar.Checked) { MessageBox.Show("Boyut Bilgisi tamamlandı" + "\n" + "Lütfen Kırpma işlemini Yapınız"); } BtnBoyutlandir.Enabled = false; BtnPanoyaAl.Enabled = false; BtnPndanYapistir.Enabled = false; } private void BalonGoster() { if (ChkUyar.Checked) { toolTip1.SetToolTip(BtnSil, "Sol tuşu ile Tüm Bilgiler Boşaltılır" + "\n" + " Sağ Fare tuşu ile Kırpılan Resim Silinir"); toolTip1.SetToolTip(linkLabel2, "Form Eni Büyütülüp Küçültülür"); toolTip1.SetToolTip(linkLabel1, "Çalışılan Nesne Güncellenir" + "\n" + " Nesne Yoldan Boyutlanıp Güncellenir"); toolTip1.SetToolTip(NumUpDown1, "Numaratör değiştirildikçe Boyut Güncellenir"); toolTip1.SetToolTip(NumUpDown1, "Sol tuşu ile Tüm Bilgiler Boşaltılır" + "\n" + " Sağ Fare tuşu ile Kırpılan Re sim Silinir"); } } #endregion #region BUTTON OLAYLARI private void BtnResimAl_Click(object sender, EventArgs e) { if (openFileDialogDosyaAc.ShowDialog() == DialogResult.OK) { dosyaYolu = openFileDialogDosyaAc.FileName; LblYol.Text = dosyaYolu; bmp = new Bitmap(dosyaYolu); picBox1.Image = bmp; /* picturebox nesnesinin sizemode özelliği strech olarak ayarlanır.Bunun sebebi seçilen resmin picturebox nesnesinde tam olarak gözükmesini sağlamaktır. */ ChkMod.Checked = false; picBox1.SizeMode = PictureBoxSizeMode.StretchImage; Clipboard.SetDataObject(picBox1.Image, true); BoyutunuAl(); linkLabel1.Visible = true; } } private void BtnBoyutlandir_Click(object sender, EventArgs e) { try { eni = string.Empty; boy = string.Empty; eni = KrpTxtEn.Text; boy = KrpTxtBoy.Text; ; int en = Int32.Parse(eni); int by = Int32.Parse(boy); Bitmap bmpKucuk = new Bitmap(picBox1.Image, en, by); picBox1.Image = bmpKucuk; picBox1.SizeMode = PictureBoxSizeMode.CenterImage; ChkMod.Checked = true; // değiştirip göster Entxt.Text = eni; BoyTxt.Text = boy; } catch (Exception exc) { MessageBox.Show(exc.Message, " Hata", MessageBoxButtons.OK, MessageBoxIcon.Error); } /*// Yeniden boyutlandırmak için //Bitmap sınıfı kullanılır.Picturebox da yüklü olan // resim 100 e 50 boyutunda yeniden //boyutlandırılıyor. //Dikey mi yataymı olacak Resmin eni ile Boy karşılaştırma kodu ile bul //Yeni boyut için textten giriş yapılacak */ /*Dönüştürme int result = Int32.Parse("54"); // string değer int oldu int x = 45; //Int değer int sayi = Convert.ToInt32(x); // int değer // sayısal veriyi stringe çevirmek int a = 10; TtextBox1.Text = Convert.ToString(a);*/ } private void BtnSakla_Click(object sender, EventArgs e) { using (SaveFileDialog sfd = new SaveFileDialog())//yeni bir kaydetme diyaloğu oluşturuyoruz. { sfd.Filter = "jpeg dosyası(*.JPG|*.JPG|Bitmap(*.bmp)|*.bmp";//.bmp veya .jpg olarak kayıt imkanı sağlıyoruz. sfd.Title = "Kayıt";//diğaloğumuzun başlığını belirliyoruz. sfd.FileName = "Kırpılan_resim";//kaydedilen resmimizin adını 'resim' olarak belirliyoruz. DialogResult sonuç = sfd.ShowDialog(); if (sonuç == DialogResult.OK) { KirpılanPic.Image.Save(sfd.FileName);//Böylelikle resmi istediğimiz yere kaydediyoruz //MessageBox.Show(sfd.FileName); } } } private void BtnSil_Click(object sender, EventArgs e) { KirpılanPic.Image = null; picBox1.Image = null; Pic2.Image = null; PPic.Image = null; BoyTxt.Text = null; OrjTxt.Text = null; Entxt.Text = null; bytTxt.Text = null; boyutTxt.Text = null; KrpTxtEn.Text = null; KrpTxtEn.Text = null; KrpTxtBoy.Text = null; ty.Text = null; tx.Text = null; ten.Text = null; tboy.Text = null; BtnBoyutlandir.Enabled = false; BtnPanoyaAl.Enabled = false; BtnPndanYapistir.Enabled = false; BtnSakla.Enabled = false; linkLabel1.Enabled = false; } private void KesBtn_Click(object sender, EventArgs e) { if (Clipboard.GetDataObject().GetDataPresent(DataFormats.Bitmap)) KirpılanPic.Image = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap); Pic2.Refresh(); BtnKapat(); BtnBoyutlandir.Enabled = false; BtnPanoyaAl.Enabled = false; BtnPndanYapistir.Enabled = false; BtnSakla.Enabled = false; BtnSakla.Enabled = true; } private void BtnKapat() { KesBtn.Enabled = false; KesBtn.BackColor = SystemColors.ScrollBar; //ControlDark; KesBtn.ForeColor = SystemColors.ControlDark; } private void BtnAc() { KesBtn.Enabled = true; KesBtn.BackColor = Color.Red; KesBtn.ForeColor = SystemColors.ButtonHighlight; } private void Pic2_MouseHover(object sender, EventArgs e) { BtnKapat(); } #endregion #region PANO İŞLEMLERİ private void BtnPanoyaAl_Click(object sender, EventArgs e) { try { //Clipboard.SetDataObject(PPic.Image, true); // gizli yere kopyala ve panoya alıyor Clipboard.SetDataObject(picBox1.Image, true); } catch (Exception exc) { MessageBox.Show(exc.Message, " Hata", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void BtnPndanYapistir_Click(object sender, EventArgs e) { if (Clipboard.GetDataObject().GetDataPresent(DataFormats.Bitmap)) Pic2.Image = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap); } #endregion #region CheckBox OLAYI private void CheckBox1_CheckedChanged(object sender, EventArgs e) { if (ChkMod.Checked) { picBox1.SizeMode = PictureBoxSizeMode.Zoom; ChkMod.Text = "Boyut Modu" + " ( Zoom )"; } else { picBox1.SizeMode = PictureBoxSizeMode.StretchImage; picBox1.Refresh(); ChkMod.Text = "Boyut Modu" + " ( StretchImage )"; } } #endregion #region FORM DRAGDROP OLAYI private void Form1_DragDrop(object sender, DragEventArgs e) { string[] yolDrag = (string[])e.Data.GetData(DataFormats.FileDrop, false); LblYol.Text = yolDrag[0]; //dosyaYolu = openFileDialogDosyaAc.FileName; //LblYol.Text = dosyaYolu; bmp = new Bitmap(LblYol.Text); picBox1.Image = bmp; /* picturebox nesnesinin sizemode özelliği strech olarak ayarlanır.Bunun sebebi seçilen resmin picturebox nesnesinde tam olarak gözükmesini sağlamaktır. */ ChkMod.Checked = false; picBox1.SizeMode = PictureBoxSizeMode.StretchImage; Clipboard.SetDataObject(picBox1.Image, true); linkLabel1.Visible = true; BoyutunuAl(); } private void Form1_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) { e.Effect = DragDropEffects.All; } else { e.Effect = DragDropEffects.None; } } #region PicMevcut DRAGDROP OLAYLARI private void PicMevcut_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) { e.Effect = DragDropEffects.All; } else { e.Effect = DragDropEffects.None; } } private void PicMevcut_DragDrop(object sender, DragEventArgs e) { string[] yolDrag = (string[])e.Data.GetData(DataFormats.FileDrop, false); LblYol.Text = yolDrag[0]; //dosyaYolu = openFileDialogDosyaAc.FileName; //LblYol.Text = dosyaYolu; bmp = new Bitmap(LblYol.Text); picBox1.Image = bmp; /* picturebox nesnesinin sizemode özelliği strech olarak ayarlanır.Bunun sebebi seçilen resmin picturebox nesnesinde tam olarak gözükmesini sağlamaktır. */ ChkMod.Checked = false; picBox1.SizeMode = PictureBoxSizeMode.StretchImage; Clipboard.SetDataObject(picBox1.Image, true); linkLabel1.Visible = true; BoyutunuAl(); } #endregion #endregion #region Picture (Pic2) Kesme_Kırpma İŞLEMLERİ private void Pic2_MouseDown(object sender, MouseEventArgs e) { //if (e.Button == System.Windows.Forms.MouseButtons.Left) if (KesBtn.Enabled) { ten.Text = null; tboy.Text = null; BtnKapat(); return; } Cursor = Cursors.Cross; cropX = e.X; cropY = e.Y; Cursor = Cursors.Cross; int a = cropX; tx.Text = Convert.ToString(a); int b = cropY; ty.Text = Convert.ToString(b); cropPen = new Pen(Color.White, 4) { DashStyle = DashStyle.DashDotDot }; //Color.Green, red, White Pic2.Refresh(); } private void Pic2_MouseMove(object sender, MouseEventArgs e) { if (Pic2.Image == null) return; if (e.Button == System.Windows.Forms.MouseButtons.Left) { Pic2.Refresh(); cropWidth = e.X - cropX; cropHeight = e.Y - cropY; int ta = cropWidth; ten.Text = Convert.ToString(ta); int tby = cropWidth; tboy.Text = Convert.ToString(tby); Pic2.CreateGraphics().DrawRectangle(cropPen, cropX, cropY, cropWidth, cropHeight); PPic.Refresh(); cropWidth = e.X - cropX; cropHeight = e.Y - cropY; PPic.CreateGraphics().DrawRectangle(cropPen, cropX, cropY, cropWidth, cropHeight); KesBtn.Enabled = true; } } private void Pic2_MouseUp(object sender, MouseEventArgs e) { try { Cursor = Cursors.Default; if (cropWidth < 50) { BtnKapat(); return; } Rectangle rect = new Rectangle(cropX, cropY, cropWidth, cropHeight); // İlk önce önceden hesaplanmış noktaların yardımıyla bir dikdörtgen tanımlarız. Bitmap OriginalImage = new Bitmap(Pic2.Image, Pic2.Width, Pic2.Height); // Original image Bitmap _img = new Bitmap(cropWidth, cropHeight); // kırpma görüntüsü için Graphics g = Graphics.FromImage(_img); // grafik oluştur g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality; g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; // görüntü niteliklerini ayarla g.DrawImage(OriginalImage, 0, 0, rect, GraphicsUnit.Pixel); // PictureBox1.Image = _img; PPic.BringToFront(); PPic.Image = _img; PPic.Width = _img.Width; // kesilenin Eni alındı PPic.Height = _img.Height;// kesilenin Boyu alındı Clipboard.SetDataObject(PPic.Image, true); // gizli olan PPic.Image 'ye kopyala ve panoya al if (ChkFrmda.Checked) // true ise formda değilse Otomatik { BtnAc(); Form2 fr = new Form2 { Text = ("Eni :" + PPic.Width + "_" + "Boyu : " + PPic.Height) }; // kırpılan nesne panoda Form2 açılıyor ve oradaki Pic2 'ye yapıştırılıyor fr.ShowDialog(); } else { Clipboard.SetDataObject(Pic2.Image, true); // gizli olan PPic.Image 'ye kopyala ve panoya al Clipboard.SetDataObject(PPic.Image, true); // gizli olan PPic.Image 'ye kopyala ve panoya al BtnAc(); //otomatik Kırptı ve yapıştırdı KesBtn.Focus(); KesBtn_Click(null, null); } } catch (Exception exc) { MessageBox.Show(exc.Message, " Hata", MessageBoxButtons.OK, MessageBoxIcon.Error); } } #endregion #region TEXTBOX VE LİNKLABEL İŞLEMLERİ private void TtextBox1_TextChanged(object sender, EventArgs e) { if (KrpTxtEn.Text != null & KrpTxtBoy.Text != null) { //BtnBoyutlandir.BackColor = Color.Red; BtnBoyutlandir.Enabled = true; BtnPanoyaAl.Enabled = true; BtnPndanYapistir.Enabled = true; BtnSakla.Enabled = true; } else { return; } } private void LinkLbldenAl() { try { ChkMod.Checked = false; Clipboard.SetDataObject(picBox1.Image, true); if (Clipboard.GetDataObject().GetDataPresent(DataFormats.Bitmap)) Pic2.Image = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap); ChkMod.Checked = false; picBox1.SizeMode = PictureBoxSizeMode.StretchImage; Clipboard.SetDataObject(picBox1.Image, true); BoyutunuAl(); ChkMod.Checked = true; } catch (Exception exc) { MessageBox.Show(exc.Message, " Hata", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void LinkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { LinkLbldenAl(); } private void NumUpDown1_ValueChanged(object sender, EventArgs e) { LinkLbldenAl(); } #endregion private void KirpılanPic_DoubleClick(object sender, EventArgs e) { KirpılanPic.Image = null; } private void LinkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { if (this.Width == 950) { this.Width = 420; } else { this.Width = 950; } } private void BtnSil_MouseDown(object sender, MouseEventArgs e) { if(MouseButtons.Right == e.Button) { KirpılanPic.Image=null; } } private void ChkUyar_CheckedChanged(object sender, EventArgs e) { if (ChkUyar.Checked) { ChkUyar.Text = "İşlem Bilgisi Göster"; } else { ChkUyar.Text = "İşlem Bilgisini Gizle"; } } private void linkLabel2_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) PanelMn.Dock = DockStyle.Left; if (e.Button == MouseButtons.Right) PanelMn.Dock = DockStyle.Right; } } }
Hiç yorum yok:
Yorum Gönder
Önceki Kayıt
Ana Sayfa
Kaydol:
Kayıt Yorumları (Atom)
Hiç yorum yok:
Yorum Gönder