用白色或黑色边框调整图像大小

时间:2012-08-20 13:14:49

标签: asp.net image resize

用于调整图片大小我使用此方法:

private Bitmap ResizeBitmap(Bitmap b, int nWidth, int nHeight)
{
    Bitmap result = new Bitmap(nWidth, nHeight);
    using (Graphics g = Graphics.FromImage((System.Drawing.Image)result))
        g.DrawImage(b, 0, 0, nWidth, nHeight);
    return result;
}

是否有可能在图片的顶部/底部或右侧/左侧创建白色或黑色边框,以便图片居中,我不必通过CSS进行此操作?

示例:我有一张200x100像素的照片,我想让它在我网站上的100x100像素图像区域中工作。目前我将200x100像素图片的大小调整为100x50像素,这样它就可以在100x100像素的盒子中进行匹配,并以css为中心。

我需要的是在调整图片大小以添加边框后,使图片不是100x50像素,而是100x100像素,白色或黑色边框......

任何想法......我可以用普通的.net库做到这一点吗?感谢所有的建议!

最好的问候, 杰西卡

1 个答案:

答案 0 :(得分:1)

我终于找到了解决问题的方法:

private Bitmap ResizeBitmapWithPadding(Bitmap b, int nWidth, int nHeight, int originalWidth, int originalHeight)
{
    Bitmap result = new Bitmap(originalWidth, originalHeight);
    using (Graphics g = Graphics.FromImage((System.Drawing.Image)result))
    { 
        g.InterpolationMode = InterpolationMode.HighQualityBicubic;
        g.SmoothingMode = SmoothingMode.HighQuality;
        g.PixelOffsetMode = PixelOffsetMode.HighQuality;
        g.CompositingQuality = CompositingQuality.HighQuality;
        g.Clear(GetColor());
        g.DrawImage(b, (originalWidth - nWidth) / 2, (originalHeight - nHeight) / 2, nWidnHeight);
    }
    return result;
}

感谢您的帮助!