private Bitmap text2Image(string text) { Bitmap bm_bw = new Bitmap(picBW.Width, picBW.Height); Graphics g = Graphics.FromImage(bm_bw); g.Clear(Color.FromArgb(PIX_WHITE, PIX_WHITE, PIX_WHITE)); StringReader strReader = new StringReader(text); BdfFont bf = BdfFont.getInstance(); int chX = picBW.Width / bf.Width; int chY = picBW.Height / bf.Height; for (int yy = 0; yy < chY; yy++) { string lineText = Strings.StrConv(strReader.ReadLine(), VbStrConv.Wide); if (lineText == null) { break; } int len = lineText.Length; if (len > chX) { len = chX; } int count = 0; for (int xx = 0; xx < len; xx++) { byte[] font = bf.getFontData(lineText[count]); for (int y = 0; y < bf.Height; y++) { int mask = 0x8000; int xbyte = 2; //めんどくさいので横幅2byte限定 int xdata = font[xbyte * y] << 8 | font[xbyte * y + 1]; for (int x = 0; x < bf.Width; x++) { int pix = xdata & mask; int bw; if (pix == 0) { bw = PIX_WHITE; } else { bw = PIX_BLACK; } bm_bw.SetPixel(xx * bf.Width + x, yy * bf.Height + y, Color.FromArgb(bw, bw, bw)); mask >>= 1; } } count++; } } return(bm_bw); }