MVC ImageResizer - Resim Yükleme

MVC ImageResizer - Resim Yükleme

Ağustos 15, 2014 | Faruk

Hazırladığımız web sitelerine zaman zaman resim yükleme ihtiyacı duyarız. Bu bazen Resim Galerisi olur bazen de bir ürün ya da hizmete ait resim olur. Sonuçta ilk bakışta basit gibi görünse de bize çeşitli sorunlar çıkarabilir. Zîra resmin türü (bmp,png,jpg) ne olacak? Genişlik ve yükseklik standardı ne olmalı? gibi sorular olur. Tür ve ebatlar dosya boyutunu ciddi anlamda etkilediği için bir çok yerde upload işlemi esnasında resmin yeniden boyutlandırılması ve hatta türünün değiştirilmesi gerekir.

Web formsda bu işlemi FileUpload kontrolüne bir alt fonksiyon yazarak çözüyorduk. Code Behind da ResimBoyutlandır(en,boy,tür); şeklinde bir metoda istediğimiz değerleri göndererek kendi oluşturduğumuz kod ile resmi şekillendiriyorduk.

MVC de bu olay çok daha pratik bir şekilde çözülmüş. 

ImageResizer

ImageResizer kullanarak resim için istediğimiz değerleri (-ki en fazla 4 tane en-boy-tür-şekillendirme tipi) vererek resmi yüklüyoruz. Çok uzatmadan kısaca işlemleri anlatayım.

  • İlk önce Nuget ten ihtiyacımız olan dosyaları Package Manager Console yoluyla Install-Package ImageResizer diyerek projemize dahil ediyoruz.
  • İşlem yapacağımız Controller ın en üstünde ki NameSpace alanına  using ImageResizer; satırını ekleyerek kodları kullanıma hazır hale getiriyoruz.
  • İlgili Action'a giderek (hani Action üstünde [HttpPost] yazan ve HttpPostedFileBase diyerek resmi aldığımız bölge) oraya girerek kodumuzu ekliyoruz. Koda baktığınızda karışık bir şey olmadığını göreceksiniz. Resim dediğimiz HttpPostedFileBase den gelen objemiz, arkasında yükleme yapılacak klasörün adı, ve en sonunda da bizim ve boyut gibi kriterler.

 

var resize = new ImageJob(Resim, "~/img/galeri/",new Instructions("format=png;width=600;"));
 
          resize.CreateParentDirectory = true;
          resize.AddFileExtension = true;
          resize.Build();
          string resimADi= Path.GetFileName(resize.FinalPath);

 

2. satırda eğer klasör yoksa oluşturma yetkisi veriyoruz,

3.satırda dosya uzantısı işlemi yapılıyor,

4 satır işlemi tamamlıyor.

Son satırda da resim yeniden boyutlandırıldıktan ve yeniden isimlendirildikten sonra resmin yeni adı dönüyor. Hepsi bu kadar. Kafa karıştırmamak için uzun uzadıya detayına girmiyorum, resmi sayfasından detaylarını inceleyebilirsiniz.

 

Keyifli kodlar :)

 

Not: Makalecik bana aittir. İzin almadan kullanmazsanız sevinirim. Paylaşalım ama kaynak gösterelim. :)

{fa} ruk

Software Developer

e-Sosyal

:)

Ankara