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);
    }

Asp.net Resim boyutlandırma işlemini yapmış oluyoruz
resimboyutlandir

  • Fatih Barış ŞAHAN

    GDI+ içinde genel bir hata oluştu. diye bir hata alıyorum ? nedendir acaba

    • BilisimOgretmeni

      Dosyanın yazma iznini kontrol edin.

  • Kamil

    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?

  • ramazan

    bunu visual basic yazılımı lazım acil

  • bayramkaranlilk

    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

  • Zehra

    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