Загрузка кода из файловой системы:Мое изображение не сжимая
System.Drawing.Image image = System.Drawing.Image.FromFile(<location of original image>););
Загрузка кода из запроса браузера:
var memoryStream = new MemoryStream();
using (memoryStream)
{
System.Web.HttpContext.Current.Request.Files[upload].InputStream.CopyTo(memoryStream);
memoryStream.ToArray();
}
byte[] bytes = memoryStream.GetBuffer();
// Get the image from the server
System.Drawing.Image image = new System.Drawing.Bitmap(System.Web.HttpContext.Current.Request.Files[upload].InputStream);
Resize вызов изображения:
System.Drawing.Image image = this.ResizeImage(
image,
originalImagePath,
ImageSizeType.Original,
null,
null)
Сохранить изображение вызова:
image.Save(<location to save>);
Код, который не сжимает изображение:
private System.Drawing.Image ResizeImage(System.Drawing.Image image, string filePath, string sizeType, int? _width, int? height)
{
...
System.Drawing.Bitmap b = new System.Drawing.Bitmap(width, resizeHeight);
b.SetResolution(72, 72);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage((System.Drawing.Image)b);
g.CompositingQuality = CompositingQuality.HighSpeed;
//g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.InterpolationMode = InterpolationMode.Low;
g.SmoothingMode = SmoothingMode.HighSpeed;
g.DrawImage(image, 0, 0, width, resizeHeight);
g.Dispose();
return (System.Drawing.Image)b;
}
Независимо от того, что я делаю на это изображение, когда она спасает, она экономит на действительно высокий kb.
Например ... JPG 1024 х 768 @ 300Кб становится 600 х 400 @ 800KB
Что я делаю не так?
Каковы первоначальные и измененные размеры форматов файлов? Вы не показываете код загрузки/сохранения. – GazTheDestroyer
В каком формате вы сохраняете файл? – Magnus
png, gif, jpg ... все действительно. независимо от того, какой пользователь загружает – Jimmyt1988