TBarCode .NET 常见问题
DrawBitmap 生成的字号非常小
DrawBitmap 生成的字号非常小
如果您想创建高分辨率位图(DPI >= 300),生成的位图中人类可读文本 (HRT) 的字号可能会非常小。
以下 C# 示例代码展示了使用 DrawBitmap() 时屏幕 DC(96 dpi)所产生的影响。您可以通过使用 Draw() 图像导出函数,或在启用 IgnoreDPIFromDC 的情况下使用 DrawBitmap() 来解决此问题。
Barcode code128 = new Barcode(); code128.BarcodeType = BarcodeType.Code128; code128.Data = "HELLO"; code128.Dpi = 600; code128.BoundingRectangle = new Rectangle(0, 0, code128.CalculateNumberOfModules() * 6, 600); // one module = 6 Pixel code128.Draw(@"C:\temp\Draw-OK.bmp", ImageType.Bmp); // HRT is scaled correctly Bitmap test1 = code128.DrawBitmap(); test1.Save(@"C:\temp\DrawBitmap-NOK.bmp"); // HRT is very small (scaled to 96 dpi screen resolution instead of 600) code128.IgnoreDpiFromDC = true; Bitmap test2 = code128.DrawBitmap(); test2.Save(@"C:\temp\DrawBitmap-OK.bmp"); // HRT is scaled to 600 dpi (Screen DC is ignored).