は、私は、このコードは、C#で書かれている:ASP.NET(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%が125px(幅と高さ)を超える画像をアップロードすると、アプリケーションがクラッシュする可能性があります。
CanvasまたはDrawing2Dライブラリを使用することをお友達に勧めました。すでにファイルが存在する場合はどうなりますか?上書きすることは可能ですか?
愚かな質問を申し訳ありません。この場合はアドバイスが必要です。
ユーザーの20%が同時に画像をアップロードしますか? – Stilgar
と仮定します。私はシナリオを示しましたが、その割合はケースによって異なる可能性があります。 –
アップロード/ビューの比率が1/4のシナリオは想像できません。 – Stilgar