Tablica czcionek systemowych- kodowanie bitowe każdego znaku

0

Witam,
jak można uzyskać kod binarny każdego znaku z każdej czcionki, w każdym rozmiarze i stylu zainstalowanej w systemie za pomocą C#?
Wiem, że można pobrać listę wszytskich dostępnych czcionek.
Czy są jakieś specjalne klasy, a w nich metody i właściwości żeby "rozbić" i pobrać kod binarny znaków? Chodzi mi o coś takiego, co wykonuje program "GLCD FONT CREATOR", nie wiem czy koledzy słyszeli i korzytsali z niego...
pozdrawiam

1

a co za problem napisać tekst na bitmapie czarno białej i odczytać bitmapę jak tablicę?

0

kombinuję sobie na powoli i stworzyłem coś takiego:

Bitmap bmp = new Bitmap(66, 16);
            using (Graphics g = Graphics.FromImage(bmp))
            {
                Font font = new Font("Arial", 12, GraphicsUnit.Point);
                g.Clear(System.Drawing.Color.White);
                g.DrawString("Tekst", font, System.Drawing.Brushes.Black, 0, 0);
            }
            System.Drawing.Imaging.BitmapData bmpData = bmp.LockBits(new System.Drawing.Rectangle(0, 0, bmp.Width, bmp.Height), System.Drawing.Imaging.ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format1bppIndexed);
            Bitmap newBitmap = new Bitmap(66, 16, bmpData.Stride, System.Drawing.Imaging.PixelFormat.Format1bppIndexed, bmpData.Scan0);
            newBitmap.Save(@"c:\x.bmp");


            Byte[] data;

            using (var memoryStream = new MemoryStream())
            {
                bmp.Save(memoryStream, ImageFormat.Bmp);

                data = memoryStream.ToArray();
            }
            foreach (var item in data)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();

Czy jest to dobre? .... w konsoli wyrzuca mi same liczby 255 i jest ich aż 4277.

0

chcę uzyskać odczytanie bitmapy do tablicy. patrzę sobie na ten temat//stackoverflow.com/questions/7350679/convert-a-bitmap-into-a-byte-array

1

nie wiem za bardzo co kombinujesz ale najprościej to chyba tak

"przepisanie" bitmapy do grida
private void button2_Click(object sender, EventArgs e)
{
BitmapData bmd32 = bmp32.LockBits(new Rectangle(0, 0, bmp32.Width, bmp32.Height), ImageLockMode.ReadOnly, bmp32.PixelFormat);

        int x, y;
        for (y = 0; y < bmp32.Height; y++)
        {
            for (x = 0; x < bmp32.Width; x++)
            {
                int index = y * bmd32.Stride + (x * 4);
                if (Color.FromArgb(Marshal.ReadByte(bmd32.Scan0, index + 2),
                                Marshal.ReadByte(bmd32.Scan0, index + 1),
                                Marshal.ReadByte(bmd32.Scan0, index)).GetBrightness() > 0.5f)
                    dataGridView1.Rows[y].Cells[x].Value = " ";
                else
                    dataGridView1.Rows[y].Cells[x].Value = "X";
            }
        }
        bmp32.UnlockBits(bmd32);
    }

![user image](http://i.imgur.com/ZGToCku.png)

1 użytkowników online, w tym zalogowanych: 0, gości: 1