- Регистрация
- 01.10.2022
- Сообщения
- 99
- Благодарностей
- 30
- Баллы
- 18
Данный снипет я нашел на просторах данного форума:
С помощью него хочу разметить текст на картинке с выбранным шрифтом, но проблема в том, что выбранный шрифт не подтягивается, а выбирается какой-то стандартный.
В том же шаблоне, использую данный снипет, который рабочий и подтягивает нормально шрифт.
Помогите пожалуйста починить первый снипет, чтобы выбранный шрифт использовался, так как там оно ставит текст по центру, а во втором это не получается.
С помощью него хочу разметить текст на картинке с выбранным шрифтом, но проблема в том, что выбранный шрифт не подтягивается, а выбирается какой-то стандартный.
Не рабочий:
string bgPath = project.Variables["DefaultNavBar"].Value;
string saveImgPath = project.Variables["SavePathImage"].Value;
string text = project.Variables["UserName"].Value; // переменная с текстом который будет на изображении.
Image image = Image.FromFile(bgPath);//картинка из файла
Graphics graphics = Graphics.FromImage(image);
Font drawFont = new Font("SF-Pro-Text-Semibold", 30, FontStyle.Bold);
//цвет
SolidBrush drawBrush = new SolidBrush(Color.Black);
//отступы слева, сверху, размер прямоугольника в который будет вписан текст
RectangleF drawRect = new RectangleF(25, 50, image.Width-50, image.Height-50);
//выравнивание текста
StringFormat drawFormat = new StringFormat();
//горизонтальное
drawFormat.Alignment = StringAlignment.Center;
//вертикальное
drawFormat.LineAlignment = StringAlignment.Center;
//пишем текст
graphics.DrawString(text, drawFont, drawBrush,drawRect,drawFormat);
//сохраняем файл
image.Save(saveImgPath);
Рабочий:
string InputImagePath = project.Variables["SavePathImage"].Value;
string SaveImagePath = project.Variables["SavePathImage"].Value;
string Time = project.Variables["Time"].Value;
using (MagickImage image = new MagickImage(InputImagePath)){
MagickReadSettings readSettings = new MagickReadSettings{
FillColor = MagickColors.Black, // цвет текста
BackgroundColor = MagickColors.Transparent, // фон текста
Font = "SF-Pro-Text-Semibold", // Шрифт текста (только те, что установлены в Windows)
Width = 90, // Ширина текста
Height = 38 }; // Высота текста
image.Alpha(AlphaOption.Opaque);
using (MagickImage label = new MagickImage("label:"+Time, readSettings)){
image.Composite(label, 50, 27, CompositeOperator.Over); // расположение текста на картинке 200 слева, 100 сверху
image.Write(SaveImagePath);
}
}