mehmetduran.com - Paylaşmak Güzeldir...
Asp.net ileThumbnail Oluşturma
Yaptığımız uygulamalarda resimlerle ve fotoğraflarla çok sık uğraşırız. Bazen bunların kendi ebatlarının dışın da  daha küçüğüne ihtiyaç duyarız. Bunun için thumbnail yani küçüğünü hazırlayıp kullanmamız gerekir. Bunu asp.net kullanarak şöyle yapabiliyoruz:

Öncelikle sayfamıza upload edeceğimiz resmi veya fotoğrafı alacağımız bir fileuplaod ve fileupload tetikleyecek bir buton ekliyoruz. Daha sonra normal resimleri veya fotoğrafları ekleyeceğimiz bir images klasörü ve bunun da içine oluşturacağımız küçük resimler için thumbs klasörü ekliyoruz.   Son olarak buton_click içinde çağaracağımız aşağıdaki metodu yazıyoruz.

public void upload()
    {
        if (FileUpload1.HasFile)
        {
            FileUpload1.SaveAs(Server.MapPath("~/images/") + FileUpload1.FileName);
            System.Drawing.Image img = System.Drawing.Image.FromFile(Server.MapPath("~/images/") + FileUpload1.FileName);
            System.Drawing.Image thumb = img.GetThumbnailImage(160, 120, null, IntPtr.Zero); // oluşturulacak küçük resmin genişliğini 160px yüksekliğini 120 px olarak belirledim. kendi ihtiyacınıza göre bunları değiştirebilirsiniz.
            img.Dispose();
            thumb.Save(Server.MapPath("~/images/thumbs/") + FileUpload1.FileName);
        }
    }


Projemizi çalıştırdığımızda aşağıdaki gibi bir görüntü elde ederken dosyamızın hem kendisi upload edildi hem kendisinin küçük bir benzeri daha oluşturulmuş oldu.


Bu projenin örneğine buradan ulaşabilirsiniz.
İyi Çalışmalar !
Mehmet Duran 28 Haziran Cumartesi 2008 14 15290 5,0
Bookmark and Share
Bu Yazıyı Değerlendirin.
Konuyla İlgili Olabilecek Diğer Yazılar Dinamik Meta Tag Oluşturma Javascript ile Karakter Saydırma Visual Studio'da Daha İyi Kodlama için Temalar Asp.net'te Veritabanı Bağlantı Cümlesini Web.Config'de Tanımlama Asp.net'te Jquery ve Ajax ile Server Zamanını Alma
Yorumlar
Yorum Yaz
RSS Yorum Takibi
Erdal Aksoy 11 Ocak Pazar 2009 01:25 #1
Merhaba. Şu anda saat 01.24 ve ben sitenizdeyim. Ben de bir Gazili olarak çalışmalarınızı büyük bir beğeni ile takip ettim. Sizi tebrik edemeden geçemedim. Emeğinize sağlık. Erdal Aksoy Bilişim Teknolojileri Formatörü
Hasan Gürsoy 30 Ocak Cuma 2009 11:56 #2
Microsoft`un MSDN`inde System.Drawing sınıfının aspx ile kullanılmasının iyi olmadığı belirtiliyor. Bunun başka yapılış yolu yok mu? http://msdn.microsoft.com/en-us/library/system.drawing.aspx
Mehmet Duran 30 Ocak Cuma 2009 12:51 #3
Zamanında bu uygulamayı yapabilmek için epey araştırma yapmıştım. Bu kodları da bu araştırmalar sonucu yazmıştım. Şu anda da yaptığım projelerde kullanmaktayım ve bir sıkıntı olmadı. Başka bir yöntem var mı bilmiyorum ama araştırmaya çalışacağım.
serhan 06 Haziran Cumartesi 2009 14:13 #4
merhaba çok güzel bir anlatım olmuş. Sizden bunu videoda yapan çalışmayı anlatmanızı rica ediyorum.
serhan 09 Haziran Salı 2009 18:21 #5
videodan resim karesi alacak şekilde yaparsanız çok makbule geçecek...
Mehmet Duran 09 Haziran Salı 2009 22:15 #6
Şimdiye dek video ile pek ilgilenmedim. Ancak bu konuda bir bilgim olursa bloğumda paylaşırım.
Ahmet 08 Ekim Perşembe 2009 04:41 #7
Merhabalar, .net yeniyim bu yazmış olduğum upload sınıfında güvenlik nedeniyle resmi images klasörüne yazmadan direkt olarak küçültüp yapmak için ne gerekli. Bunu ne için sölüyorum onuda açıklayayım etraf shell ve exploit kaynıyor resmi direkt küçültükten sonra kaydetmemiz bence dosyayın resim olduğunu anlamamız için en önemli güvenlik. Bu konuda yardımcı olurmusunuz
Mehmet Duran 08 Ekim Perşembe 2009 15:49 #8
Merhaba. Bunun için upload edeceğin resmi byte dizisi olarak alıp, ölçeklendirmek için byte dizisini kullanabilirsin. Bu şekilde dosya ile uğraşmış olmazsın. Bu konuda netten kaynak ve örnekler bulabilirsin. Ancak yine de güvenlik sıkıntısı her aşamada olabilir.
sedatt 02 Şubat Salı 2010 13:25 #9
Ben bu işi daha uzun kod bloğuyla yapardım ama sen baya kısaltmışssın teşekkürler.
serkan 03 Mart Çarşamba 2010 01:54 #10
merhaba ben C# ile (yukarıdaki kodlarla) resmi 450x300 px boyutlarında kaydediyorum, bunun boyutu yaklaşık olarak 350 kb olurken aynı resmi roundpic.com adresinde düzenlediğim zaman resmin boyutu 41 kb oluyor resmin netliği de çok fazla bozulmuyor. Bu roundpic.com ne yapıyorda resmin netliğini neredeyse hiç bozmadan yaklaşık olarak 9 kat daha fazla küçültebiliyor acaba_? Sitede çok fotoğraf olunca bandwidth hadisesi epey bi önemli oluyor tabi...2 resim göstersen 700 kb... acaba bi bilgin var mı?
Mehmet Duran 03 Mart Çarşamba 2010 23:57 #11
Merhaba. Bu konu çok önemli bir konu. Resim boyutlandırma için birçok kütüphane mevcut. .Net ile gördüğüm kütüphanlerin çoğu böyle çalışıyor maalesef. Resimleri kalite bozulmadan, daha küçük disk alanı kaplayacak şekilde boyutlandırmak için çeşitli kütüphaneler kullanılabilir ama bunların ücretsiz olarak bulunabileceğini sanmıyorum. Ben fırsat bulursam bu işleri iyi yapan Matlab ile bir kütüphane hazırlamayı düşünüyorum. Söylemiş olduğun site de kendine has bir kütüphane kullanıyordur.
Levend TEKİN 30 Haziran Çarşamba 2010 21:40 #12
Sen bir harikasın Mehmet.. Başım ne zaman sıkışsa sende bir çözüm mutlaka buluyorum.. Sonsuz teşekkürler...
Emre 22 Temmuz Perşembe 2010 03:47 #13
Dostum çııok sağolasın bu resim yuklemeyi bu kadar pratik kıısa bi burada gördüm eline sağlık. Yalnız bir ayrıntıı var verdigin 160 120 oranı her resim için uymaz ben su satırları ekledim koda int genislik = img.Width; int yukseklik = img.Height; int x = 250; //width'i 250px yaptım int oran = genislik / 250; int y = yukseklik/oran; System.Drawing.Image thumb = img.GetThumbnailImage(x, y, null, IntPtr.Zero); taş gibi çalıştı:)
Mehmet Duran 22 Temmuz Perşembe 2010 17:41 #14
Söylediklerinde haklısın. Paylaştığım kodun tarihi bayağı eski. Şu anda daha efektif metotlar kullanmaktayım.
İsim :
Site :
Yorum :

Buradan bu yazıya ait yorumları RSS olarak takip edebilirsiniz.

Bu servis ile yazılara eklenen yorumları RSS ile takip ederek konu ile ilgili başkaları tarafından yapılan yorumları veya konuyla ilgili sorduğunuz sorulara verilen cevapları görebilirsiniz.
Kimse sana senden iyi öğüt veremez.
Bölümler
Yazılar
Arşiv
Arama
Linkler
Site İçi Arama
Son Zamanlarda Ne Yapıyorum ?
İstatistikler - Araçlar - Reklam
İstatistikler
Sayaç
Mehmet Duran | mehmetduran.com | Copyright © 2009