yazgelistir.com
  Ana Sayfa   Forumlar Hakkımızda
  
Loading... Yükleniyor. Lütfen bekleyin ...
 Kategoriler
ASP.NET
ADO.NET
Visual Basic .NET
Visual C# .NET
Visual Studio ve Araçlar
Windows Server System
Office System
.NET Framework
SQL Server
XML Web Servisleri
Yazılım Güvenliği
Yazılım Mühendisliği
Mobil Teknolojileri
Dynamics
Smart Client
Expression Studio
Silverlight
Kod Parçaları
Açık Kaynak Kodlu Uygulamalar
İş Zekası
Windows Mobile Embedded

    0
Çıkış Yap
Üyelik Bilgilerimi Güncelle
Seminerlerim
Favorilerim
Ajanım

 Yazgeliştir
Yazar olmak ister misiniz?
Forumlar
Kitap Önerileri
Haberler
Yazarlar
İpuçları
Görüşleriniz
Hakkımızda

  İstatistikler
En son kayıt olan üye:
arcadiaa

Şuanki online üyeler ( 5 ) :
hbayramogullari , behcetcan , siyahdeniz , overcat , ssaglamer
 

DorukNet 
     ASP.NET Kategorisi  » Web Sayfalarında Otomatik Küçük Resim(Thumbnail) Oluşturmak    

Web Sayfalarında Otomatik Küçük Resim(Thumbnail) Oluşturmak

Print Versiyonu


 
Yazar: Sem Göksu

Tarih:23.11.2008

Puan:4,75 (Oy Kullanan:12)

Okuma Sayısı:929

  Makaleyi İşaretle


Makale Özeti
Merhaba arkadaşlar, bu makalemizde bir çok uygulamada işimize yarayacak küçük resim(thumbnail) oluşturma işleminin nasıl yapıldığına bakacağız.


Makale
Birçok web sitesi, portal veya eticaret sitesi üzerinde örneğine rastlabileceğimiz resim gösterimlerinde ilk olarak kullanıcıya konu ile ilgili küçük bir resim(thumbnail) gösterilir ve kullanıcı kendi isteğine göre bu küçük resme tıklayarak resmi görüntüleyebilir. Bu kullanıcı için çok büyük sorun olmasa da içeriği sağlayan kişi yada kişiler için çok büyük iş yükü sağlar. Örneğin bir haber sitesi düşünelim; haber ile ilgili bir resim girdiğimiz de aynı resmin bir küçük resmini oluşturmak zorundayızdır. Hele bir de bu habere ait bir resim galerisi oluşturacaksak bu işe ayıracağımız süre uzar.

Bu makalede de bu ve bunun gibi sorunları çözebilmek için otomatik olarak küçük resimlerin oluşturulmasını sağlayacağız. Yapacağımız işlem aslında basit bir boyut küçültme işlemi gibi düşünebiliriz. Bunu da bizim için yapabilen bir metot var. Bu metot System.Drawing kütüphanesinde yer alan Image sınıfına ait GetThumbnailImage metodudur. Bu metotla resimlerin boyutlarını değiştirebiliriz.

Konuyla ilgili bir örnek yapalım. Yukarıda da bahsettiğimiz gibi bir portalımız olduğunu varsayalım. Herhangi bir habere de bir resim galerisi ekleyelim. Burada küçük resim ve birde resmin orijinal hali yer alır. Bu galeriyi giren kişi için çok uzun ve sıkıcı bir iştir. Bu yüzden biz resmi otomatik olarak yeniden boyutlandırsak tek bir resim girmesiyle galeriyi giren kişiye hem zaman kazandırırız hem de gereksiz yere hosting alanımızın boyutu yükselmez.

İlk olarak yeni bir web projesi oluşturalım. Sonrasında projemize bir adet Class ekleyelim. İlk olarak projemizin kütüphaneleri arasına aşağıdaki kütüphaneleri ekleyelim.

using System;
using System.Web;
using System.IO;
using System.Drawing;

Şimdi sınıfımızı yazalım.

//Oto resize isimli bir sınıf oluşturduk.

public class OtoResize

{

    //Resimlerimizi yeniden boyutlandırtıkdan sonra geriye byte dizisi olarak döndüreceğiz. Bunun için KucukResimOlustur isimli bir metot yazıyoruz. Bu metot static olsun ki sınıfı örneklemeden metodumuzu kullanabilelim.

    public static byte[] KucukResimOlustur(string dosyaYolu, int yukseklik, int genislik, string dosyaUzantisi)

    {

        dosyaYolu = HttpContext.Current.Server.MapPath(dosyaYolu);

        // Image tipinde bir değişken tanımlayıp, Image tipinin Fromfile metodunu kullanarak dosya yoluna göre resmi img değişkenenine gönderdik.

        Image img =  Image.FromFile (dosyaYolu);

        dosyaUzantisi = dosyaUzantisi.ToLower();

 

        byte[] buffer = null;

 

        //Resmin orjinal boyutlarını alıyoruz.

        int tempGenislik = img.Size.Width;

        int tempYukseklik = img.Size.Height;

 

        //Resmin yeniden boyutlandırılıp boyutlandırılamayacağına bakıyoruz.

        bool genislikResize = (genislik > 0 && tempGenislik > genislik && tempGenislik > yukseklik);

        bool yukseklikResize = (yukseklik > 0 && tempYukseklik > yukseklik &&am