Elifnur Güner

Bittersweet coding...

İmaj Boyutlandırırken

clock Temmuz 24, 2007 21:12 by author elifnurguner

Geçen gün bir arkadaşımın şiddetli sitemiyle blog’u boşlama işine bir son vermiş durumdayım.  Söz konusu sitemin sebebi siteye imaj yükleme işlemi sırasında imajı bozmadan yeniden boyutlandırma ile ilgili bir kod bloğu.  Kendisinin de inceleyip onayladığı bu kodları blogumda yayınlamak bir yana uzun süredir yazmadığımı yüzüme vurunca utandım haliyle J  İşte söz konusu imaj boyutlandırma bloğu:

public System.Drawing.Bitmap CreateThumbnail(System.IO.Stream lcStream, int lnWidth, int lnHeight)
{
   
System.Drawing.
Bitmap bmpOut = null;
   
try
   
{
      
System.Drawing.
Bitmap loBMP = new System.Drawing.Bitmap(lcStream);
      
System.Drawing.Imaging.
ImageFormat loFormat = loBMP.RawFormat;

      decimal lnRatio;
      
int lnNewWidth = 0;
      
int lnNewHeight = 0;

      if (loBMP.Width < lnWidth && loBMP.Height < lnHeight)
         
return loBMP;

      if (loBMP.Width > loBMP.Height)
      
{
         
lnRatio = (
decimal)lnWidth / loBMP.Width;
         
lnNewWidth = lnWidth;

         decimal lnTemp = loBMP.Height * lnRatio;
         
lnNewHeight = (
int)lnTemp;
      
}
      
else
      
{

         lnRatio = ( decimal)lnHeight / loBMP.Height;
         
lnNewHeight = lnHeight;>

         decimal lnTemp = loBMP.Width * lnRatio;
         
lnNewWidth = (
int)lnTemp;
      
}

      
bmpOut =
new System.Drawing.Bitmap(lnNewWidth, lnNewHeight);
      
System.Drawing.
Graphics g = Graphics.FromImage(bmpOut);
      
g.InterpolationMode = System.Drawing.Drawing2D.
InterpolationMode.HighQualityBicubic;
      
g.FillRectangle(Brushes.White, 0, 0, lnNewWidth, lnNewHeight);
      
g.DrawImage(loBMP, 0, 0, lnNewWidth, lnNewHeight);>

      loBMP.Dispose();
   
}
   
catch
   
{
      
return null;
   
}
   

   return bmpOut;

}

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Validation Framework

clock Şubat 26, 2007 04:18 by author elifnurguner

Uygulama geliştirme sürecinde her zaman arka planda kalan ve testlerde karşımıza çıkan bir sorundur validation kontrollerinin eksikliği.  Örneğin User entity nesnenizdeki UserName için maksimum uzunluk 50 karakter ise ve bir ValidationLayer kullanmıyorsanız bu kontrolü önyüzde UserName aldığınız her ekranda ayrı ayrı tanımlamanız gerekecektir.  Paylaşacağım makaledeki örnekte validation tanımını entity nesnenizde gerçekleştiriyorsunuz. Gereklilik, uzunluk, veri tipi gibi validation kuralları uygulayabileceğiniz gibi custom bir kuralda yazabiliyorsunuz.  Tüm bu tanımlamayı entity içinde gerçekleştirdikten sonra önyüzde sadece entity'deki property'lerinizi ilgili kontrole bağlayan tek satır kodu yazmanız yeterli oluyor.  Makaledeki Framework'ün hata mesajları için Localization gibi eksikleri var tabiiki.  Ama kodlar elinizde olduğundan istediğiniz gibi değiştirebilirsiniz:

http://www.codeproject.com/useritems/ValidationFramework.asp

Bir de Enterprise library'nin 3.0 versiyonu ile bir Validation Framework geliyor.  Henüz inceleme fırsatı bulamadığımdan birşey söyleyemiyorum.  İncelemiş olan varsa sonucu duymak isterim :)

1 kişi tarafından 4,0 olarak değerlendirildi

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Syndication

Arama

Takvim

<<  Ağustos 2008  >>
PaPaSaÇaPeCuCu
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456

Arşiv

Etiketler

    Kategoriler


    Blog Listesi