У меня есть aspx страница, которая загрузит изображения на жесткий диск сервера от клиентского ПК
Но теперь я должен изменить свою программу таким способом, которым она позволила бы мне изменять размеры изображения при загрузке.
У кого-либо есть какая-либо идея об этом? Я не мог не найти такие свойства/методы с Входным управлением файловым сервером
Кто-либо там для руководства меня?
Вы можете использовать это, это здорово для меня. Но для меня он плохо обрабатывает изображения с низким разрешением. К счастью, я привык ко многим из них. Просто отправьте ему изображение байт []
и ожидаемый результат, и все будет в порядке.
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;
}
Другой подход - позволить пользователю регулировать размер в браузере, а затем изменять размер изображения, как описано в других ответах.
Итак, взгляните на это решение, которое позволяет загружать и обрезать изображения с помощью jQuery, jCrop и ASP.NET .