Шаблоны букв алфавита в 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);
}
}