Загрузка Изображения ASP.NET с Изменением размеров

У меня есть aspx страница, которая загрузит изображения на жесткий диск сервера от клиентского ПК

Но теперь я должен изменить свою программу таким способом, которым она позволила бы мне изменять размеры изображения при загрузке.

У кого-либо есть какая-либо идея об этом? Я не мог не найти такие свойства/методы с Входным управлением файловым сервером

Кто-либо там для руководства меня?

35
задан user29982 31 October 2008 в 18:14
поделиться

2 ответа

Вы можете использовать это, это здорово для меня. Но для меня он плохо обрабатывает изображения с низким разрешением. К счастью, я привык ко многим из них. Просто отправьте ему изображение байт [] и ожидаемый результат, и все будет в порядке.

public static byte[] ResizeImageFile(byte[] imageFile, int targetSize) 
{ 
    using (System.Drawing.Image oldImage = System.Drawing.Image.FromStream(new MemoryStream(imageFile))) 
    { 
        Size newSize = CalculateDimensions(oldImage.Size, targetSize); 

        using (Bitmap newImage = new Bitmap(newSize.Width, newSize.Height, PixelFormat.Format32bppRgb)) 
        { 
            newImage.SetResolution(oldImage.HorizontalResolution, oldImage.VerticalResolution); 
            using (Graphics canvas = Graphics.FromImage(newImage)) 
            { 
                canvas.SmoothingMode = SmoothingMode.AntiAlias; 
                canvas.InterpolationMode = InterpolationMode.HighQualityBicubic; 
                canvas.PixelOffsetMode = PixelOffsetMode.HighQuality; 
                canvas.DrawImage(oldImage, new Rectangle(new Point(0, 0), newSize)); 
                MemoryStream m = new MemoryStream(); 
                newImage.Save(m, ImageFormat.Jpeg); 
                return m.GetBuffer(); 
            } 
        } 

    } 
} 

private static Size CalculateDimensions(Size oldSize, int targetSize) 
{ 
    Size newSize = new Size(); 
    if (oldSize.Width > oldSize.Height) 
    { 
        newSize.Width = targetSize; 
        newSize.Height = (int)(oldSize.Height * (float)targetSize / (float)oldSize.Width); 
    } 
    else 
    { 
        newSize.Width = (int)(oldSize.Width * (float)targetSize / (float)oldSize.Height); 
        newSize.Height = targetSize; 
    } 
    return newSize; 
} 
1
ответ дан 27 November 2019 в 15:43
поделиться

Другой подход - позволить пользователю регулировать размер в браузере, а затем изменять размер изображения, как описано в других ответах.

Итак, взгляните на это решение, которое позволяет загружать и обрезать изображения с помощью jQuery, jCrop и ASP.NET .

4
ответ дан 27 November 2019 в 15:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: