2016-06-16 17 views
6

Yüklenme sırasında fotoğrafın boyutunu Height =600px & Width= 800px [bu boyuttan daha büyükse] boyutuna sıkıştırmak istiyorum. Bir veri türü görüntüsü ile sql server2008'da kaydetme!Yükleme sırasında fotoğrafın yüksekliği ve genişliği nasıl sıkıştırılır [asp.net]

public byte[] imagetoByte() 
     { 
      if (FileUpload1.HasFile) 
      { 
       int imageFilelength = FileUpload1.PostedFile.ContentLength; 
       byte[] ph = new byte[imageFilelength]; 
       HttpPostedFile ima = FileUpload1.PostedFile; 
       MemoryStream memoryStream = new MemoryStream(); 
       ima.InputStream.Read(ph, 0, imageFilelength); 
       return ph; 
      } 
      else 
      { 
       return null; 
      } 

     } 

işlev görüntü yüklemek için kullanılır !! Biri Bunu düzeltmek için bana yardımcı ..

cevap

0

Olası çözüm olarak şunlar olabilir:

int imageFilelength = FileUpload1.PostedFile.ContentLength; 
byte[] ph = new byte[imageFilelength]; 

MemoryStream ms = new MemoryStream(ph); 
Image img = System.Drawing.Image.FromStream(ms); 

//Call function to resize 
Image ResizedImage = RezizeImage(img, 500, 500); 

//Save Image 
ResizedImage.Save("IMAGELOCATION.png", System.Drawing.Imaging.ImageFormat.Gif); 

private Image RezizeImage(Image img, int maxWidth, int maxHeight) 
{ 
    if(img.Height < maxHeight && img.Width < maxWidth) return img; 
    using (img) 
    { 
     Double xRatio = (double)img.Width/maxWidth; 
     Double yRatio = (double)img.Height/maxHeight; 
     Double ratio = Math.Max(xRatio, yRatio); 
     int nnx = (int)Math.Floor(img.Width/ratio); 
     int nny = (int)Math.Floor(img.Height/ratio); 
     Bitmap cpy = new Bitmap(nnx, nny, PixelFormat.Format32bppArgb); 
     using (Graphics gr = Graphics.FromImage(cpy)) 
     { 
      gr.Clear(Color.Transparent); 

      // This is said to give best quality when resizing images 
      gr.InterpolationMode = InterpolationMode.HighQualityBicubic; 

      gr.DrawImage(img, 
       new Rectangle(0, 0, nnx, nny), 
       new Rectangle(0, 0, img.Width, img.Height), 
       GraphicsUnit.Pixel); 
     } 
     return cpy; 
    } 

} 
+0

Görüntü img = System.Drawing.Image.FromStream (ms); deyim hata gösteriyor ... "Parametre geçerli değil" diyor .. !! – Aju

+0

Sorunu çözdüğümü düşünüyorum. Bu cevap size yardımcı olursa oy verin. Teşekkürler – Sami

İlgili konular