您好我尝试将用户上传到我网站的图片剪裁成正方形。我已尝试在此网站上发布了一些解决方案,即http://stackoverflow.com/questions/5222711/image-resize-in-c-sharp-algorith-to-determine-resize-dimensions-height-and-wi和WebImage Crop To Square。然而,虽然这些解决方案将图像转换为正方形,但它们在图像的顶部和底部添加了大面积的透明度,这不是我想要的,因为这些图像将用作轮廓图像。
答案 0 :(得分:0)
要在不向顶部和底部添加大块透明度的情况下裁剪图像,您将不得不切掉部分边。在没有看到代码的情况下,它应该是沿着切断(宽度 - 高度)/每边2个像素的线条。
答案 1 :(得分:0)
这是我在网站上一直使用的代码:
public Bitmap MakeSquarePhoto(Bitmap bmp, int size)
{
try
{
Bitmap res = new Bitmap(size, size);
Graphics g = Graphics.FromImage(res);
g.FillRectangle(new SolidBrush(Color.White), 0, 0, size, size);
int t = 0, l = 0;
if (bmp.Height > bmp.Width)
t = (bmp.Height - bmp.Width) / 2;
else
l = (bmp.Width - bmp.Height) / 2;
g.DrawImage(bmp, new Rectangle(0, 0, size, size), new Rectangle(l, t, bmp.Width - l * 2, bmp.Height - t * 2), GraphicsUnit.Pixel);
return res;
}
catch { }
}