gpt4 book ai didi

C# 位图填充

转载 作者:行者123 更新时间:2023-11-30 13:34:35 25 4
gpt4 key购买 nike

我想创建一个大小为 160*160 的位图并将其分成四个正方形,每个正方形填充一种颜色。如何做到这一点?

最佳答案

以防万一有人需要以更通用的方式解决这个特定问题的方法,我写了一个扩展方法,采用颜色和一个整数,说明它应该在 x 和 y 方向上分割多少 block :

public static void FillImage(this Image img, int div, Color[] colors)
{
if (img == null) throw new ArgumentNullException();
if (div < 1) throw new ArgumentOutOfRangeException();
if (colors == null) throw new ArgumentNullException();
if (colors.Length < 1) throw new ArgumentException();

int xstep = img.Width / div;
int ystep = img.Height / div;
List<SolidBrush> brushes = new List<SolidBrush>();
foreach (Color color in colors)
brushes.Add(new SolidBrush(color));

using (Graphics g = Graphics.FromImage(img))
{
for (int x = 0; x < div; x++)
for (int y = 0; y < div; y++)
g.FillRectangle(brushes[(y * div + x) % colors.Length],
new Rectangle(x * xstep, y * ystep, xstep, ystep));
}
}

OP 想要的四个正方形将通过以下方式生成:

new Bitmap(160, 160).FillImage(2, new Color[] 
{
Color.Red,
Color.Blue,
Color.Green,
Color.Yellow
});

关于C# 位图填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2657629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com