我有两个列表,List1包含我的图像“bmp”中每个像素的坐标(x,y),还有List2,它包含0,1,2,3,4和5之间的整数值。 0表示最低有效位(0),5表示最高有效位(255)。 0到255是不同级别的灰色。
我的问题基本上是如何将List1与List2进行比较,并根据List2中的信息在我的图像“bmp”中设置像素值;
因此输出将是一个灰度图像,根据我的List2选择图像中每个像素的颜色。
答案 0 :(得分:2)
您可以使用简单的循环和乘法来执行此操作:
for (int i = 0; i < list2.Count; i++)
{
int c = list2[i] * 51;
bmp.SetPixel(list1[i].X, list1[i].Y, Color.FromArgb(c,c,c));
}
这将根据list2
中的值创建颜色,然后设置相应像素的颜色(假设list1
的位置对应于list2
的值) 。
如果这有帮助,请告诉我。
答案 1 :(得分:0)
在列表上尝试for循环,将其视为数组。
for (int i=0, i < list1.count-1, i++)
{
switch (list2[i])
{
# Making a fake method here - I'm basically faking that the SetPixel method
# takes in a coordinate and lets you set a value on that coordinate.
case 1:
bmp.Setpixel(list1[i]).value = 0;
break;
case 2:
bmp.Setpixel(list1[i]) value = 51;
break;
etc...
}
}