Asp.Net Resim Yükleme İşlemleri
Merhaba Arkadaşlar ,Bu bölümde web projelerimizde ado.net yardımıyla resim ekleme ve boyutlandırma işlemlerine bakıyor olacağız.Lafı daha fazla uzatmadan sizler için yorum satırları haline getirmiş olduğum kodları paylaşarak anlatıma devam ediyor olacağım
protected void btnYukle_Click(object sender, EventArgs e) { string resimadi = ""; string uzanti = ""; pnl_vitrin_a.Visible = false; pnl_vitrin_b.Visible = true; pnl_res2_a.Visible = true; if (fuvitrin.HasFile)//resim varsa { uzanti = Path.GetExtension(fuvitrin.PostedFile.FileName);//resim uzantısını aldıgım bölüm resimadi = Kontrol.Temizle(baslik) +"_vitrin_"+ ilanID + uzanti;// resim ve uzantısı ve ilanın baslığı ve IDsi benzersiz olması için fuvitrin.SaveAs(Server.MapPath("ilanResim/Silinecek" + uzanti));// gecici bi dosyaya alıp boyut düzenlemesi yapmak için int deger = 270;// resimi yeni boyutunu vermek için tanımladım değişkeni Bitmap resim = new Bitmap(Server.MapPath("ilanResim/Silinecek" + uzanti)); using (Bitmap yeniresim = resim) { double yukseklik = yeniresim.Height;// resimi bitmap nesnemden alıp yükseklik veriyom double genislik = yeniresim.Width;//genişlik double oran = 0; if (genislik >= deger)//boyutlandırma burada yapılıyo { oran = genislik / yukseklik;// resim boyutlandırma ayarlarım genislik = deger;//genislik belilediğimiz degerlere ayarlanıyor yukseklik = deger / oran;//yükseklik ayarlanıyor Size yenidegerler = new Size(Convert.ToInt32(genislik), Convert.ToInt32(yukseklik));//genislik ve yükseklik cevirme işlemi Bitmap Sonresim = new Bitmap(yeniresim, yenidegerler);// bitmap nesnem üzerinde var olan resmi yenidegerler olarak aldım Sonresim.Save(Server.MapPath("ilanResim/200/" + resimadi));// kullaniciresimleri icersine kaydettim Sonresim.Dispose(); yeniresim.Dispose(); resim.Dispose(); } else { fuvitrin.SaveAs(Server.MapPath("ilanResim/200/" + resimadi));// eger 270 pxden kücükse direk kaydet } } deger = 960;// resimi yeni boyutunu vermek için tanımladım değişkeni resim = new Bitmap(Server.MapPath("ilanResim/Silinecek" + uzanti)); using (Bitmap yeniresim = resim) { double yukseklik = yeniresim.Height;// resimi bitmap nesnemden alıp yükseklik veriyom double genislik = yeniresim.Width;//genişlik double oran = 0; if (genislik >= deger)//boyutlandırma burada yapılıyo { oran = genislik / yukseklik;// resim boyutlandırma ayarlarım genislik = deger;//genislik belilediğimiz degerlere ayarlanıyor yukseklik = deger / oran;//yükseklik ayarlanıyor Size yenidegerler = new Size(Convert.ToInt32(genislik), Convert.ToInt32(yukseklik));//genislik ve yükseklik cevirme işlemi Bitmap Sonresim = new Bitmap(yeniresim, yenidegerler);// bitmap nesnem üzerinde var olan resmi yenidegerler olarak aldım Sonresim.Save(Server.MapPath("ilanResim/700/" + resimadi));// kullaniciresimleri icersine kaydettim Sonresim.Dispose(); yeniresim.Dispose(); resim.Dispose(); } else { fuvitrin.SaveAs(Server.MapPath("ilanResim/700/" + resimadi));// eger 250 pxden kücükse direk kaydet } } FileInfo fisilinecek = new FileInfo(Server.MapPath("ilanResim/Silinecek" + uzanti));//ilk olusturdugum gecici olan resmimi burdan siliyorum fisilinecek.Delete(); //veri tabanına yükleme işlemleri SqlConnection baglantim = mt.baglan(); SqlCommand cmd = new SqlCommand("Insert Into ilanResimler (ilanID,VitrinResim) values(@ilanID,@VitrinResim) ", baglantim); cmd.Parameters.AddWithValue("@ilanID", ilanID); cmd.Parameters.AddWithValue("@VitrinResim", resimadi); cmd.ExecuteNonQuery(); imgvitrin.ImageUrl = "ilanResim/200/"+resimadi; } else { SqlConnection baglantim = mt.baglan(); SqlCommand cmd = new SqlCommand("Insert Into ilanResimler (ilanID,VitrinResim) values(@ilanID,@VitrinResim) ", baglantim); cmd.Parameters.AddWithValue("@ilanID", ilanID); cmd.Parameters.AddWithValue("@VitrinResim","ResimYok.png"); cmd.ExecuteNonQuery(); } }
Bu işlemlerin daha basite indirgenmiş yöntemleri olabilir
Bizim amacımız sadece nasıl yapılabilirliğini uygulamada göstermek.
Umarım faydalı olur
Kaydol:
Kayıt Yorumları
(
Atom
)
Hiç yorum yok :
Yorum Gönder
Soru Görüş önerileriniz için gmail plus üzerinden + layın müsait olduğumda mutlaka yanıt dönüyor olacağım.