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

- Rejestracja:prawie 11 lat
- Ostatnio:ponad 6 lat
- Postów:93
0

- Rejestracja:ponad 12 lat
- Ostatnio:7 miesięcy
- Postów:6610
1
a co za problem napisać tekst na bitmapie czarno białej i odczytać bitmapę jak tablicę?

- Rejestracja:prawie 11 lat
- Ostatnio:ponad 6 lat
- Postów:93
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.

- Rejestracja:ponad 12 lat
- Ostatnio:7 miesięcy
- Postów:6610
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);
}

- WindowsFormsApplication1.7z (23 KB) - ściągnięć: 259