Asp.Net Resim Boyutlandırma
Asp.net ile hazırladığınız sitelerde resim yükleme işlemi er yada geç lazım olacaktır, resim yükleme işlemini çok zorlanmadan FileUpload nesnesi ile yapabiliriz ama yüklenecek olan resmin boyutunu değiştirme ve yüklenen resim boyutlandırılırken en-boy oranını bozmadan nasıl yapılır onu anlatmaya çalışacağım.
İlk olarak form üzerine bir FileUpload ve bir bir buton ekliyoruz.
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>www.aspnetornekleri.com</title> </head> <body> <form id="form1" runat="server"> <div> <table> <tr> <td> <asp:FileUpload ID="FileUpload1" runat="server" /> </td> </tr> <tr> <!-- www.aspnetornekleri.com --> <td> <asp:Button ID="btnyukle" runat="server" Text="Yükle ve Boyutlandır" onclick="btnyukle_Click" /></td> </tr> </table> </div> </form> </body> </html>
Asp.net ile yeniden boyutlandırılacak resmi seçtik ve “Yükle ve Boyutlandır” butonuna bastık şimdi neler olacak kısaca anlatayım dosyalar üzerinde işlem yapacağımız ve resim işleyeceğimiz için
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Drawing.Design;
using System.IO; namsespacelerini projemize ekliyoruz daha sonraki kodlarımız
protected void btnyukle_Click(object sender, EventArgs e) { if (FileUpload1.HasFile) { string resim=string.Empty; Bitmap yeniresim=null; try { yeniresim = resim_boyulandir(FileUpload1.PostedFile.InputStream, 210, 130);//yeni resim için boyut veriyoruz.. resim = Server.MapPath("resimler/") + Guid.NewGuid().ToString() + ".png"; yeniresim.Save(resim, ImageFormat.Jpeg); //www.aspnetornekleri.com } catch (Exception ex) { Response.Write("Hata Oluştu: " + ex.Message.ToString()); } finally { resim = string.Empty; yeniresim.Dispose(); } } } private Bitmap resim_boyulandir(Stream resim, int genislik, int yukseklik) { Bitmap orjinalresim = new Bitmap(resim); int yenigenislik = orjinalresim.Width; int yeniyukseklik = orjinalresim.Height; double enboyorani = Convert.ToDouble(orjinalresim.Width) / Convert.ToDouble(orjinalresim.Height); //www.aspnetornekleri.com if (enboyorani <= 1 && orjinalresim.Width > genislik) { yenigenislik = genislik; yeniyukseklik = Convert.ToInt32(Math.Round(yenigenislik / enboyorani)); } else if (enboyorani > 1 && orjinalresim.Height > yukseklik) { yeniyukseklik = yukseklik; yenigenislik = Convert.ToInt32(Math.Round(yeniyukseklik * enboyorani)); } return new Bitmap(orjinalresim, yenigenislik, yeniyukseklik); }
Hocam click olayında dosya yolunu gösterirken ” ‘+’ işleci ‘string’ ve ‘yöntem grubu’ türündeki işlenenlere uygulanamaz ” hatası alıyorum.Nasıl bir çözüm yolu uygulayabilirim
Hocam olmasına oluyorda peki bu yuklenen resimlerin ismini değiştirmeden yuklememiz için ne yapmam lazım orneğin ; resim/680ce7e6-2439-4cad-8b4b-7bb4b50a56a6.png diye değil de dosyanın orjinal ismini koymak istiyorum. Vertabanına kaydederken sıkıntı oluyor sonra
bunu visual basic yazılımı lazım acil
Merhaba peki standart height değerini atıyorum 80 yapsak genişlikte bu oranda kendisi orantılanamaz mı veya bunun için ne yapmamız lazım acaba?
GDI+ içinde genel bir hata oluştu. diye bir hata alıyorum ? nedendir acaba
Dosyanın yazma iznini kontrol edin.