我是使用 C# 构建应用程序的新手。我正在处理图像并对其进行一些分析。单击图像后,我得到当前像素的 RGB 值。接下来所有值都存储在带有预览图像的列表视图中。还有我的问题。预览图像与当前像素的 RGB 值不同。如果我对图片框也这样做,那么颜色是正确的。但我不知道如何在 listView 或 listBox 中实现图片框。有我的源代码,它为我的颜色预览创建位图。
private Image createImage(Color col)
{
PixelFormat px_format = PixelFormat.Format32bppRgb;
int pixelFormatSize = Image.GetPixelFormatSize(px_format) / 8;
int stride = 16 * pixelFormatSize;
int padding = (stride % 4);
stride += padding == 0 ? 0 : 4 - padding; //pad out to multiple of 4
SharedPinnedByteArray byteArray = new SharedPinnedByteArray(stride * 16);
Bitmap bmp = new Bitmap(16, 16, stride, px_format, byteArray.bitPtr);
Graphics gpx = Graphics.FromImage(bmp);
SolidBrush brush = new SolidBrush(col);
gpx.FillRectangle(brush, 0, 0, 16, 16);
gpx.Dispose();
return bmp;
}
这是我如何调用函数并将项目添加到 listView
listView1.SmallImageList.Images.Add(createImage(color));
listView1.Items.Add(color.R.ToString() + "," + color.G.ToString() + "," + color.B.ToString() + ",", listView1.SmallImageList.Images.Count - 1);
此致
加布里埃尔