İlginizi Çekebilir
  1. Ana Sayfa
  2. C Sharp

C# DevExpress PictureEdit Resim Döndür ve Kaydet

C# DevExpress PictureEdit Resim Döndür ve Kaydet
+ - 0

C# DevExpress PictureEdit Resim Döndür ve Kaydet yazım ile C# setime devam ediyorum. Bu dersimizde DevExpress ‘in PictureEdit nesnesindeki resmi döndürme ve kaydetme işlemine bakacağız.

C# DevExpress PictureEdit Resim Döndür ve Kaydet

Telefonlardan çektiğimiz resimler bazen PictureEdit nesnesinde yan görünüyor. Buna geliştirdiğim bir proje esnasında rastladım. Bu yüzden bu dersi ekleme gereği gördüm. Şimdi dersimizin içeriğine geçelim.

Öncelikle formumuza bir DevExpress PictureEdit nesnesi ve üç buton ekleyelim. Butonların biri resim seçmek için biri resmi döndürmek için diğeri ise resmi kaydetmek için kullanacağız. Elbette bahsettiğim projemde durum böyle değil ama bu dersi açıklamak için bu şekilde olacak.

Resmi çekme butonumuzun Click eventindeki kodları verelim.

            OpenFileDialog op = new OpenFileDialog();
            op.Title = "Resim Seçiniz";
            op.Filter = "Resim Dosyaları(*.BMP;*.JPG;*.JPEG;*.PNG;*.GIF)|*.BMP;*.JPG;*.JPEG;*.PNG;*.GIF";
            op.RestoreDirectory = true;

            if (op.ShowDialog() == DialogResult.OK)
            {
                string orj_path = op.FileName;
                string new_path = "D://";
                File.Copy(orj_path, new_path);
                
                FileStream fs = new FileStream(new_path, FileMode.OpenOrCreate);
                pictureEdit1.Image = Image.FromStream(fs);
                fs.Flush();
                fs.Close();
                    
            }

Kodlarımızı açıklama gerekirse;

  1. OpenFileDialog ile resimleri filtreleyerek seçim ekranını açıyoruz. OpenFileDialog ‘u işlediğim dersime buradan gidebilirsiniz.
  2. Eğer OpenFileDialog ile bir resim seçilmiş ise
    1. Seçilen resmin mevcut yolunu alıyoruz.
    2. Resmi kopyalayacağımız yolu yazıyoruz.
    3. File sınıfı ile resmi kopyalıyoruz (System.IO namespace’i gerekir.)
    4. FileStream ile resmi alıp PictureEdit nesnesinde gösteriyoruz.

Resmi pictureedit nesnesinde gösterdik. Şimdi resmi döndürme kodlarına geçelim.

 

 Image image = pictureEdit1.Image.Clone() as Image;
            image.RotateFlip(RotateFlipType.Rotate90FlipNone);
            pictureEdit1.Image.Dispose();
            pictureEdit1.Image = image;
  1. Öncelikle pictureedit nesnemizdeki resmi bir image türü değişkene  atıyoruz.
  2. Image sınıfının RotateFlip() metodunun Rotate90FlipNone özelliği ile resmi 90 derece döndürüyoruz.
  3. PictureEdit nesnesindeki resmi boşaltıyoruz.
  4. Döndürdüğümüz resmi tekrar pictureedit nesnesine yüklüyoruz.

Şimdi de resmimizi olduğu şekilde kaydetme kodlarımıza bakalım.

    string new_path = "D:/YeniResimler/1.jpg";
            Image img = (Image)pictureEdit1.Image.Clone();
            img.Save(new_path, System.Drawing.Imaging.ImageFormat.Jpeg);

            FileStream fs = new FileStream(yeni_path, FileMode.OpenOrCreate);
            pictureEdit1.Image = Image.FromStream(fs);
            fs.Flush();
            fs.Close();

            string old_path = "D://1.jpg";
            File.Delete(old_path);

 

  1. İlk olarak pictureEdit nesnemizdeki resmi bir Image türü değişkene Clone() metodu yüklüyoruz.
  2. Image sınıfının Save yani kaydet metodu ile verdiğimiz new_path değişkenindeki yola kayıt ediyoruz.
  3. Resmi kaydettikten sonra eski resim boş boş durmasın diye eski resmi siliyoruz.

Bu kodlar Windows PictureBox ile işe yarar mı emin değilim ama büyük ihtimalle işe yarayacaktır. Çünkü nesne özelliklerini içeren bir kod yazmadık.  Bunun denemesini siz yaparsınız. Sorun çıkmaz ise bu dersin altına yorum yapabilirsiniz. Böylece diğer arkadaşlarımızda emin olurlar.


C# DevExpress PictureEdit Resim Döndür ve Kaydet, dersimizde bu kadardı arkadaşlar diğer derslerimizde görüşmek üzere…

C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.

Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz…

Takipte ve Sağlıcakla kalın. ?

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)