Osman KURT

Kendime Not

ASP.Net de Klasör İçinde ki Dosyaları Sayfa da Görüntüleme

Sevgili programcı arkadaşlarım bu yazımda size kullandığımız bir klasör içinde bulunan image dosyalarını sayfada görüntüleme konusunda yardımcı olacağım. İsterseniz hiç vakit kaybetmeden kodlarımızı yazmaya geçelim. Bu nerde işimize yarayacak derseniz sınırlı hosting kullanımlarında çok yer kaplayan image dosyalrımızı sağlıklı bir şekilde yönetmemize yarayacaktır diye düşünüyorum.

İlk Olarak bir proje oluşturuyoruz ve gelen default.aspx dosyamıza bir adet panel atıyoruz.

<asp:Panel ID="Panel1" runat="server">
</asp:Panel>

Panelimizi attıktan sonra kod kısmımıza geçelim ve kodlarımızı yazmaya başlayalım.

default.aspx.cs dosyamıza geliyoruz ve alt kısımda görüdüğünüz kodları yazmaya başlıyoruz.

 DirectoryInfo klasorBilgisi = new DirectoryInfo(@"C:\Users\osmankurt\Desktop\ResimeYaziYazma\Resim");

        foreach (FileInfo dosya in klasorBilgisi.GetFiles("*.*"))
        {
            Literal ltr = new Literal();
            Panel1.Controls.Add(ltr);

            ltr.Text = "<a href='Resim/"
                + dosya.Name + "'/><img src='Resim/"
                + dosya.Name + "' width='100px' height='100px' border='0'></img></a>" + "<br/>Resim/" + dosya.Name + "<br/>";
        }

Bu kodlarımızın çalışması için sayfanın en üst kısmına

using System.IO;

Kütüphanemizi ekliyoruz.

Bu kodlarımızı ben sayfamın page_load olayına yazdım sayfa yüklendiğinde otomatik olarak linklerini ve resimlerin görüntüledim.

Umarım faydalı bir yazı olmuştur.

Görüşmek üzere;

Osman KURT

Yazılım Geliştirici ve Grafiker

ASP.Net de Resime Boyut Verme

Birçok projemizde kullanmamız gerekn bir olay bu. Yaptığımız projede resim galerisi yapıyoruz ama galerideki resimleri listelediğimizde o sayfaya giren kişinin bilgisayarı çok fena kasılıyo ve buda web sayfanızın ziyaretçi kitlesini hızlı bir şekilde aşşağıya çekebiliyor. Buda normal bir olay. Çünkü siz tutup 1027x768 px lik bir resmi 100x100 px bir boyutta gösteriyosunuz tmm ama resmin orjinal boyutu büyük olduğu için hem yüklenirken hemde gösterilirken pc yi kasacaktır. Bende bu hatayı çok yaptım. O yüzden bu kodu yazmaya başladım. Boşuna dememişler yazılım ihtiyaçtan doğar diye.

Şimdi ilk olarak Boyut.aspx dosyası oluşturalım ve içini alt kısımdaki gibi dolduralım.

<asp:FileUpload ID="FileUpload1" runat="server" /><br />
<asp:Button ID="Button1" runat="server" Text="İşlem Yap"
onclick="Button1_Click" /><br />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
<asp:Button ID="Button2" runat="server" Text="Sil" onclick="Button2_Click" />

Bu kısmı oluşturduktan sonra isterseniz asıl kod kısmımızı yazma başlayalım. hemen boyut.aspx.cs dosyamıza geçiyoruz ve kodlarımızı yazıyoruz.

private void boyutlandir(string fileName)
{
Bitmap orjinalResim = new Bitmap(Server.MapPath(fileName));
int resimGenislik = 600;
int resimYukseklik = 450;
Size yeniResimBoyut = new Size(Convert.ToInt32(resimGenislik), Convert.ToInt32(resimYukseklik));
Bitmap boyutlandirResim = new Bitmap(orjinalResim, yeniResimBoyut);
boyutlandirResim.Save(Server.MapPath("~/Resim/" + fileName), ImageFormat.Jpeg);
}
protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
string resimAd = FileUpload1.FileName;
FileUpload1.SaveAs(Server.MapPath(FileUpload1.FileName));
boyutlandir(resimAd);
}
}
protected void Button2_Click(object sender, EventArgs e)
{
try
{
File.Delete(Server.MapPath("~/Resim/"+TextBox1.Text));
Response.Write(alarmVer.msjBox("Resim Başarıyla Silinmiştir","boyut.aspx"));
//ya classı oluşturun yada bu satırı yazmayın...
}
catch (Exception)
{
Response.Write(alarmVer.msjBox("Hata Oluştu", "boyut.aspx")); //ya classı oluşturun yada bu satırı yazmayın...
}

}

Bu kodlarımızı yazdıktan sonra işlemimizi sonlandırıyoruz.

Ha Unutmadan boyut.aspx.cs dosyamızın en üst kısmına alt kısımdaki kütüphaneleri ekliyoruz yoksa projemiz çalışmıyacaktır.

using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

Sonraki yazımızda Görüşmek Üzere;

Osman KURT
Yazılım Geliştirici ve Grafiker

Not: Bu projenin çalışması için http://www.osmankurt.net/post/ASPNet-de-MesajBox-Uygulamasc4b1.aspx linkinde ki class dosyamızı oluşturmanız lazım. Yada mesaj kodlarını kaldırınız.

KucukResimOlusturma.rar (606,19 kb)

ASP.Net de Resim Üzerine Kod İle Yazı Yazma

Evet arkadaşlar bu yazımız da günümüz medyasının çok çok kullandığı bir şeyi göstereceğim size. Sahibi olduğumuz resim üzerine başkalarının kullanmasını yada resmimizin üzerinden fayda sağlamasını bir nevze olsun engellemek için kullanabileceğimiz bir yöntem. Gelin şimdi kodlarımızı yazmaya başlayalım.

İlk Olarak default.aspx dosyamıza kodlarımızı yazmaya başlayalım.

<asp:FileUpload ID="FileUpload1" runat="server" /><br />
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="Resime Yazı Yaz" onclick="Button1_Click" /> 

Ve şimdide default.aspx.cs dosyamıza kodlarımızı yazmaya geçelim.

protected void Button1_Click(object sender, EventArgs e)
    {
        System.Drawing.Image Image = System.Drawing.Image.FromStream(FileUpload1.PostedFile.InputStream);
        Bitmap b = ResmeYaz(Image, Image.Width, Image.Height, TextBox1.Text, 20);
        b.Save(Server.MapPath("~/Resim/" + FileUpload1.FileName));
    }

İşlemimizi gerçekleştirmek için yazacağımız fonksiyon aşşağıdaki gibidir.


    private Bitmap ResmeYaz(System.Drawing.Image Resim, int ResimGenisligi, int ResimYuksekligi, string Yazi, float FontBoyutu)
    {
        Bitmap resmim = new Bitmap(Resim, ResimGenisligi, ResimYuksekligi);
        System.Drawing.Graphics Resims = System.Drawing.Graphics.FromImage(resmim);
        System.Drawing.SolidBrush Brushes = new SolidBrush(System.Drawing.Color.White);
        System.Drawing.Font FontTipBoyut = new Font("verdana", FontBoyutu);
        System.Drawing.SizeF Boyut = new SizeF(0,0);
        System.Drawing.PointF YaziNoktasi = new PointF(310,310);
        System.Drawing.RectangleF Regtngl = new RectangleF(YaziNoktasi, Boyut);
        StringFormat YaziFormati = new StringFormat();
        YaziFormati.FormatFlags = StringFormatFlags.DisplayFormatControl;
        Resims.DrawString(Yazi, FontTipBoyut, Brushes, Regtngl, YaziFormati);
        return resmim;
    }

İşlemimizin sonuna gelmiş bulunmaktayız.

Sonuç:

Sonraki Makalemizde Görüşmek Üzere;

Osman kurt