Mar
11

Asp.Net’ de bir resmi yeniden boyutlandırmak

Bir çok asp.net web yazılımcısının karşısına resmi yeniden boyutlandırma olayı  çıkmaktadır.  Bu konuda sizlere yazı yazayım dedim. Çünkü istesenizde istemesenizde bu durumu ilerde kesin istiyeceklerdir 🙂 Yani vereceğim kodu kütüphanenize eklemenizde fayda var…

Resmi boyutlandırmak için “System.Drawing.Imaging” kütüphanesini kullanacağız.

ResizeImage isimli classımız var ve bizim burada kullanacağımız fonksiyon resizePicture(FileUpload myFile) isimli fonksiyonumuzdur. Bu fonksiyona parametre olarak FileUpload bileşenimizi gönderiyoruz (Dosya upload etme bileşenimizin adını).

Boyutunu değiştirmek istediğimiz resim, sitenin rootuna kopyalanmaktadır. İsterseniz kopyalayacağı yeri aşağıdaki kodda “DOSYAADI” yerine istediğiniz klasör adını yazın ve filepath adlı değişkeni aşağıdaki kodla değiştiriniz.

string filePath = HttpContext.Current.Request.PhysicalApplicationPath + "\\DOSYAADI\\";

İsterseniz kodda resmin boyutunu değiştirebilirsiniz.

int imageWidth = 80;

Ben resmin yüksekliğini boyutuna göre oranlatıyorum. İsterseniz ilgili kodda göstereceğim yerin yerine yükseklik değerini yazabilirsiniz. Aşağıdaki kodu bulup yazmış olduğunuz yükseklik değeri ile değiştirin.

(int)(fullSizeImg.Height * imageWidth / fullSizeImg.Width)

Son olarak “resizePicture” fonsiyonumuz bize dosya ismini döndürmektedir. Böylece resmin adını isterseniz veritabanına kaydetebilirsiniz.

Bu yazımın sizlere yardımcı olacağını düşünüyorum.

ResizeImage  adlı class dosyasını indirmek için tıklayın.

5 yorum bulunmaktadır - “Asp.Net’ de bir resmi yeniden boyutlandırmak”

  • Özden 12 Mart 2009, 03:27

    Çok Teşekkür ederim.Harika bir çalışma olmuş herkesin işine yarıyacağına eminim

  • Enes Pekkaya 12 Mart 2009, 22:14

    İyi çalışmalar… 🙂

  • Ömer 13 Nisan 2011, 11:56

    Merhaba,
    .cs dosyasını App_Code ‘a ekledikten sonra sayfamda aşağıdaki kod yazdım ama hata verdi

    .cs dosyasını nasıl kullanacağız kullanım detayını verebilirmisiniz.

    Birde upload edilecek bir dosyaya değilde, zaten varolan bir dosyaya kullanmak istersem nasıl kullanırım çok teşekkürler.

    Hata 1 ‘ResizeImage.resizePicture(System.Web.UI.WebControls.FileUpload)’ ile en iyi eşleşen tekrar yüklenen yöntem bazı geçersiz bağımsız değişkenlere sahip C:\Users\OMER\Desktop\Default.aspx.cs 50 21 C:\…\Crop\

    Hata 2 1 bağımsız değişkeni: ‘string’ türünden ‘System.Web.UI.WebControls.FileUpload’ türüne dönüştürülemiyor C:\Users\OMER\Desktop\Default.aspx.cs 50 38 C:\…\Crop\

    protected void ResimUpload2_Click(object sender, EventArgs e)
    {
    FileUpload2.SaveAs(Server.MapPath(“~/resize/” + FileUpload2.FileName));
    ltrImage.Text = “”;
    ResizeImage rs = new ResizeImage();
    string s = rs.resizePicture(FileUpload2.FileName.ToString());
    }

  • Enes Pekkaya 13 Nisan 2011, 12:15

    Merhaba,

    aslında aradığınız cevap hata mesajında söyleniyor aslında.

    string s = rs.resizePicture(FileUpload2.FileName.ToString());

    resizePicture() fonksiyonuna FileUpload nesnesini göndermeniz gerekiyor. Dosyanın adını değil. Aşağıdaki şekilde kodu güncellediğinizde sorununuz ortadan kalkacaktır.

    string s = rs.resizePicture(FileUpload2);

    Bir diğer hususta ise kendinize özgü fonksiyon yazmanız gerekecek. Bunun için Fileupload ile işlem yaptığım yerleri düzenlerseniz yeni yazdığınız fonksiyonu o şekilde kullanabilirsiniz.

  • Ömer 13 Nisan 2011, 14:55

    Teşekkürler, anladım ve çalıştı.

Yorum Yapın

 

Twitter'dan Takip Et! Twitter'dan Takip Et!

Etiketler

Son Yazılar

Son Yorumlar

Haftanın Özlü Sözü

Akıllı bir adam yalnız kendi tecrübelerinden, çok akıllı bir adam başkalarının da tecrübelerinden yararlanır. (Çin Atasözü)

Bağlantılar

Arşivler