If that QRCodeEncoder class doesn't provide the ability to specify a colour, you could simply change the colour of the pixels one by one:
csharp Code:
private void ChangePixelColour(Bitmap bmp, Color originalColour, Color newColour)
{
for (var x = 0; x < bmp.Width; x++)
{
for (var y = 0; y < bmp.Height; y++)
{
if (bmp.GetPixel(x, y) == originalColour)
{
bmp.SetPixel(x, y, newColour);
}
}
}
}
GetPixel and SetPixel are slow but performance should be good enough for what is likely to be a relatively small image.