Шаблоны букв алфавита в png - C#

Узнай цену своей работы

Формулировка задачи:

Всем привет. Имеется достаточно интересная задача. Для распознавания текста с картинки есть необходимость создать png файлики с шаблонами букв разного шрифта и размера ланинского алфавита: А именно при нажатии на кнопку чтобы создаваласть папка скажем Arial_18 (Шрифт_размер) с 2 подпапками для маленьких и заглавных букв лат. алфавита с рисунками букв обрезанных по краям самих букв(по контуру). Нет опыта работы с рисунками, к сожалению, поэтому прошу совета с какой стороны подступиться. Рисуночек буквы прилагается pic Буква должна быть порезана по красному контуру, то есть по краям

Решение задачи: «Шаблоны букв алфавита в png»

textual
Листинг программы
private void btnGenerate_Click(object sender, RoutedEventArgs e)
        {
            gv_font = myfont.ToString();
            gv_size = int.Parse(mysize.Text);
            gv_directory = gv_font + "_" + gv_size;
 
            for (int i=0; i<= upper_abc.Length-1;i++)
            {
                gv_symbol = upper_abc[i].ToString();
 
 
                System.Drawing.Image bmp = new Bitmap(100, 100);
 
                    Graphics g = Graphics.FromImage(bmp);
                    int size = gv_size;
                    Font myFont = new Font(gv_font, size);
 
                    SizeF sized = g.MeasureString(gv_symbol.ToString(), myFont);
                    PointF rect = new PointF(sized.Width, sized.Height);
                    
                    g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
                    g.InterpolationMode = InterpolationMode.HighQualityBicubic;
                    g.PixelOffsetMode = PixelOffsetMode.HighQuality;
                    g.Flush();
                    g.Clear(System.Drawing.Color.Transparent);
 
                    g.DrawString(gv_symbol, myFont, new SolidBrush(System.Drawing.Color.Black), rect);
 
                    var currentDirectory = System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + "/" + gv_directory + "/Upper/" ;
                    bool exists = System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + "/" + gv_directory + "/Upper/");
 
                    if (!exists)
                        System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location) + "/" + gv_directory + "/Upper/");
                    string fileName = currentDirectory + gv_symbol + ".png";
                    bmp.Save(fileName, ImageFormat.Png);    
            }           
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5
Похожие ответы