我希望假设用户上传2 MB图像然后从该图像我想生成1个缩略图图像。 为了减小它的尺寸,我可以加快速度。 因为我的列表页面包含许多图像。所以我的加载时间很长。
你能告诉我如何压缩图像或获取缩略图图像
答案 0 :(得分:1)
您可以这样做:
public static Bitmap CreateThumbnail(string filename, int width, int height)
{
Bitmap bmpOut = null;
try
{
Bitmap loBMP = new Bitmap(filename);
ImageFormat loFormat = loBMP.RawFormat;
decimal lnRatio;
int lnNewWidth = 0;
int lnNewHeight = 0;
//*** If the image is smaller than a thumbnail just return it
if (loBMP.Width < width && loBMP.Height < height)
return loBMP;
if (loBMP.Width > loBMP.Height)
{
lnRatio = (decimal)width / loBMP.Width;
lnNewWidth = width;
decimal lnTemp = loBMP.Height * lnRatio;
lnNewHeight = (int)lnTemp;
}
else
{
lnRatio = (decimal)height / loBMP.Height;
lnNewHeight = height;
decimal lnTemp = loBMP.Width * lnRatio;
lnNewWidth = (int)lnTemp;
}
bmpOut = new Bitmap(lnNewWidth, lnNewHeight);
Graphics g = Graphics.FromImage(bmpOut);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.FillRectangle(Brushes.White, 0, 0, lnNewWidth, lnNewHeight);
g.DrawImage(loBMP, 0, 0, lnNewWidth, lnNewHeight);
loBMP.Dispose();
}
catch
{
return null;
}
return bmpOut;
}
只是原型,但您可以将它用于您的项目