title: Resizing Image in ASP.NET -- Output as a Stream of the resized image for
body: <p>I got this block of code from <a href="http://forums.asp.net/t/29645.aspx" rel="nofollow noreferrer" title="this link">link text</a> and modified it a little because I want to use it with my AJAX Uploader that needs a Stream to be used for adding uploaded items into the attachments display;</p>
  
  <pre><code>public Stream ResizeFromStream(int MaxSideSize, Stream Buffer)
  {
      int intNewWidth;
      int intNewHeight;
      System.Drawing.Image imgInput = System.Drawing.Image.FromStream(Buffer);
  
      // GET IMAGE FORMAT
      ImageFormat fmtImageFormat = imgInput.RawFormat;
  
      // GET ORIGINAL WIDTH AND HEIGHT
      int intOldWidth = imgInput.Width;
      int intOldHeight = imgInput.Height;
  
      // IS LANDSCAPE OR PORTRAIT ?? 
      int intMaxSide;
  
      if (intOldWidth &gt;= intOldHeight)
      {
          intMaxSide = intOldWidth;
      }
      else
      {
          intMaxSide = intOldHeight;
      }
  
  
      if (intMaxSide &gt; MaxSideSize)
      {
          // SET NEW WIDTH AND HEIGHT
          double dblCoef = MaxSideSize / (double)intMaxSide;
          intNewWidth = Convert.ToInt32(dblCoef * intOldWidth);
          intNewHeight = Convert.ToInt32(dblCoef * intOldHeight);
      }
      else
      {
          intNewWidth = intOldWidth;
          intNewHeight = intOldHeight;
      }
  
      // CREATE NEW BITMAP
      Bitmap bmpResized = new Bitmap(imgInput, intNewWidth, intNewHeight);
  
      // SAVE BITMAP TO STREAM
      MemoryStream imgStream = new MemoryStream();
      bmpResized.Save(imgStream, imgInput.RawFormat);
  
      // RELEASE RESOURCES
      imgInput.Dispose();
      bmpResized.Dispose();
      Buffer.Close();
  
      return imgStream;
  } 
  </code></pre>
  
  <p>and being called in this block of code;</p>
  
  <pre><code>private void ItemPicture_FileUploaded(object sender, UploaderEventArgs args)
  {
      if (GetVisibleItemCount() &gt;= 5)
          return;
  
      using (System.IO.Stream stream = args.OpenStream())
      {
          ImageResize ir = new ImageResize();
          // This returns a 0 byte stream
          ItemPictureAttachments.Upload(args.FileSize, args.FileName, ir.ResizeFromStream(640, stream));
          // This works fine
          // ItemPictureAttachments.Items.Add(args.FileSize, args.FileName, stream);
      }
  }
  </code></pre>
  
  <p>Am I doing it wrong in returning the stream back to where it is being called from? Thanks!</p>