Osman KURT

Kendime Not

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)

Teşekkürler MİCROSOFT

Sevgili Yazılım geliştirici arkadaşlarım size iyi haberim var.

Hepimizin yakınen tanıdığı bazen çok kızdığı bazen de bağrına bastığı Microsoft Visual Studio 2010 da Türkçe ana dil desteği vereceğini ve böylece Türk yazılım geliştiricilerinin teknolojiyi kendi dillerinde daha etkin kullanabileceğini açıkladı. Bu haber beni gerçekten çok mutlu etti neden çünkü visual studio bir derya deniz be biz gerçekten bu konuda eksiğiz.

Herşeye ragmen sağol Microsoft :D

Görüşmek üzere

Osman KURT

 

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