2009-09-07 4 views
-1

У меня есть следующий код, чтобы сделать снимок и сгенерировать миниатюру.C#, генерирующий миниатюры filesize

Как изменить качество или сжатие, чтобы получить размер файла меньшего размера?

Image thumbNail = image.GetThumbnailImage(Width, Height, null, new IntPtr()); 
+0

-1 для вновь задавать тот же вопрос: http://stackoverflow.com/questions/684092/create-thumbnail-and-reduce-image-size –

+0

Просто, как часто вы должны задать тот же вопрос? : http://stackoverflow.com/questions/672807/generating-jpg-thumbnails-in-dotnet –

ответ

2

Если вы действительно нужно больше контроля над эскизами производства, вы будете лучше производить самостоятельно, вручную генерируя изображение меньшего размера и различного качества. GetThumbnailImage не дает вам большого контроля.

Посмотрите эту статью, как это делается. http://www.switchonthecode.com/tutorials/csharp-tutorial-image-editing-saving-cropping-and-resizing

1

Вы не используете GetThumbnailImage API:

protected Stream ResizeImage(string source, int width, int height) { 
      using (System.Drawing.Bitmap bmp = (System.Drawing.Bitmap)System.Drawing.Bitmap.FromFile(source)) 
      using (System.Drawing.Bitmap newBmp = new System.Drawing.Bitmap(width, height)) 
      using (System.Drawing.Graphics graphic = System.Drawing.Graphics.FromImage(newBmp)) 
      { 

       graphic.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; 
       graphic.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; 
       graphic.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality; 
       graphic.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; 

       graphic.DrawImage(bmp, 0, 0, width, height); 

       MemoryStream ms = new MemoryStream(); 
       newBmp.Save(ms, System.Drawing.Imaging.ImageFormat.Png); 
       return ms; 

      }    
     } 

 Смежные вопросы

  • Нет связанных вопросов^_^