我有一张正方形的图片,我想把它的边缘弄圆。我使用了System Bitmap和GraphicsPath,但这里是不同的。图片示例
What i have
拼写正常的矩形
我需要什么
拼写圆角
也许我想错了,这是尽可能简单的。我试着用谷歌搜索,但没有找到任何准确的信息。我通过蒙版和效果看到了不同的方法,但我不确定。谁能建议我将非常感激,我才刚刚开始我的旅程。我在c#中用来裁剪图像边角的代码。
public static Image RoundCorners(string fileName, int cornerRadius)
{
var image = CreateImageFromGame(fileName); //Получаем растр
if (image is not null)
{
cornerRadius *= 2;
Bitmap roundedImage = new(image.Width, image.Height);
GraphicsPath gp = new();
gp.AddArc(0, 0, cornerRadius, cornerRadius, 180, 90);
gp.AddArc(0 + roundedImage.Width - cornerRadius, 0, cornerRadius, cornerRadius, 270, 90);
gp.AddArc(0 + roundedImage.Width - cornerRadius, 0 + roundedImage.Height - cornerRadius, cornerRadius, cornerRadius, 0, 90);
gp.AddArc(0, 0 + roundedImage.Height - cornerRadius, cornerRadius, cornerRadius, 90, 90);
using (Graphics gr = Graphics.FromImage(roundedImage))
{
gr.SmoothingMode = SmoothingMode.HighQuality;
gr.SetClip(gp);
gr.DrawImage(image, 0, 0, image.Width, image.Height);
}
return roundedImage;
}
return null;
}
我应该尝试的特定动作或代码
你可以尝试使用drawwroundedrectangle和FillRoundedRectangle方法来勾勒和填充圆角矩形。
你可以尝试使用ID2D1Bitmap来创建位图画笔。然后你可以使用位图画笔填充圆角矩形。
你可以参考文档:
如何创建位图画笔