public void DrawImage(ref Bitmap bm, string code39) { com.google.zxing.oned.Code39Writer writer = new com.google.zxing.oned.Code39Writer(); com.google.zxing.common.ByteMatrix matrix; Graphics g = null; g = Graphics.FromImage(bm); float mag = PixelConversions.GetMagnification(g, bm.Width, bm.Height, OptimalHeight, OptimalWidth); int barHeight = PixelConversions.PixelXFromMm(g, OptimalHeight * mag); int barWidth = PixelConversions.PixelYFromMm(g, OptimalWidth * mag); matrix = writer.encode(code39, com.google.zxing.BarcodeFormat.CODE_39, barWidth, barHeight, null); bm = new Bitmap(barWidth, barHeight); Color Color = Color.FromArgb(0, 0, 0); for (int y = 0; y < matrix.Height; ++y) { for (int x = 0; x < matrix.Width; ++x) { Color pixelColor = bm.GetPixel(x, y); //Find the colour of the dot if (matrix.get_Renamed(x, y) == -1) { bm.SetPixel(x, y, Color.White); } else { bm.SetPixel(x, y, Color.Black); } } } }