У меня есть этот код, написанный на C #:
int maxSideSize = 125;
MemoryStream memory = new MemoryStream( File.ReadAllBytes( Path.GetFullPath( "test1.png" ) ) );
Image img = Image.FromStream( memory );
//Determine image format
ImageFormat fmtImageFormat = img.RawFormat;
//get image original width and height
int intOldWidth = img.Width;
int intOldHeight = img.Height;
//determine if landscape or portrait
int intMaxSide;
if ( intOldWidth >= intOldHeight ) {
intMaxSide = intOldWidth;
} else {
intMaxSide = intOldHeight;
}
if ( intMaxSide > maxSideSize ) {
//set new width and height
double percent = maxSideSize / (double)intMaxSide;
intNewWidth = Convert.ToInt32( percent * intOldWidth );
intNewHeight = Convert.ToInt32( percent * intOldHeight );
} else {
intNewWidth = intOldWidth;
intNewHeight = intOldHeight;
}
//create new bitmap
Bitmap bmpResized = new Bitmap( img, intNewWidth, intNewHeight );
//save bitmap to disk
string path = Path.Combine( "C:\\Temp", test1.png" ) );
bmpResized.Save( memory, fmtImageFormat );
img.Save( path );
//release used resources
img.Dispose();
bmpResized.Dispose();
} catch (Exception e) {
Console.Write( e.Message );
}
Может ли вышеприведенный код быть оптимизирован для приложения ASP.NET?
Я думаю, что если 1000 пользователей подключены к моемусайта, и, возможно, 20% из них загружают изображение размером более 125 пикселей (как по ширине, так и по высоте), тогда приложение может аварийно завершить работу.
Мой друг рекомендовал использовать библиотеку Canvas или Drawing2D.Что произойдет, если файл уже существует?Можно перезаписать?
Извините за глупый вопрос.Мне нужны советы в этом случае.