Merhaba değerli okurlar, bu yazımızda asp.net ile resim boyutlandırmayı göreceğiz.Zaman zaman uygulamalarınıza fileupload kontrolü ile resim gönderdiğiniz olmuştur bu resimler günümüz teknolojilerini de düşünürsek boyutları fazlasıyla büyüktür, örneğin bir resim alanımız var ve bu resim alanımıza maksimum 640 pixel genişliğinde resim gösterilmesini istiyoruz fakat sunucumuza resimlerimizi yüklediğimizde göreceğiniz üzere resimlerin pixelleri 640 dan fazlasıyla büyük oluyor, böyle durumlarda iki seçeneğimiz var. ilk seçeneğimiz ps,fw veya farklı bir resim boyutlandırma programı kullanarak bu resimlerimizi küçültüyoruz ve sunucumuzda gereksiz yere alan harcamasını engelliyoruz. ikinci seçeneğimiz sunucumuza gönderdikten sonra bir method ile bu resimi sunucumuzda işliyor ve istediğimiz boyutlara getiriyoruz.öncelikle projemize referans olan namespace’yi ekliyoruzusing System.Drawing;
ardından metodumuzu yazıyoruzpublic Bitmap Oranla(Bitmap resim, int donusturme) // burada resim değişkeni dikkatinizi çektiği üzere Bitmap objesi yani metodumuza Bitmap göndereceğiz, dönüştürme ise istediğimiz dönüştürme oranı oluyor{Bitmap oranlanacak = resim;//gönderilen resim objesini oranlanacak diye bir Bitmap yaratıp buna atıyoruzusing (Bitmap Orjinal = resim){double yukseklik = Orjinal.Height;double genislik = Orjinal.Width;double oran = 0;//orjinal resmimizin boyutlarını double değişkenlerine atıyoruzif (genislik >= donusturme){//burada koşulumuzu ayarlıyoruz genislik istediğimiz dönüştürme oranından büyük veya eşit ise, yeni resim oranımızı hesaplattırıyoruzoran = genislik / yukseklik;genislik = donusturme;yukseklik = genislik / oran;Size yenidegerler = new Size(Convert.ToInt32(genislik), Convert.ToInt32(yukseklik));//ve bir yenidegerler diye bir size tanımlayıp yukarıda belirlediğimiz oranlarımızı genislik ve yükseklik olarak nesnemize atıyoruz.Bitmap yeniresim = new Bitmap(Orjinal, yenidegerler);oranlanacak = yeniresim;}}return (oranlanacak);//ve başta tanımladığımız oranlanacak adlı Bitmap e yeni boyutlandırılmış resmimizi eşitliyoruz, ve metodumuz Bitmap değeri döndürmesi gerektiği için return (oranlanacak); diyerek metodumuzu sonlandırıyoruz.}
oranlama işlemimiz bitti şimdi bu metodu nasıl kullanacağımıza değinelim
formumuzda bir fileupload ve düğmemiz var bu düğmemizin click olayında işlemlerimizi yapacağızif (FileUpload1.HasFile){FileUpload1.SaveAs(Server.MapPath(“~/Uploads//Temp/” + FileUpload1.Filename ));//öncelikle dosyamızı geçici bir klasöre kaydediyoruz.Bitmap resim = new Bitmap(Server.MapPath(“~/Uploads/Temp/” + FileUpload1.Filename ));//bu geçici klasörümüzdeki resmimizi bitmap nesnesine eşiliyoruzresim = this.Oranla(resim, 640);//resmimizi metodumuza yolluyoruz ve metoddan gelen resimle değiştiriyoruz.resim.Save(Server.MapPath(“~/Uploads/” + FileUpload1.Filename));//ve resmimizi yeni boyutlarıyla kaydediyoruz.}
isteyen arkadaşlar bu click olayının sonuna File.Delete() metodunu kullanarak eski resmi sildirebilir.başka bir yazıda görüşmek dileği ile hoşçakalın.