Мне нужно добавить текст к изображению, если моя программа не активирована. Этот текст должен заполнить все изображение. Он также должен обертывать и масштабироваться, чтобы соответствовать изображению по мере необходимости.C# Drawstring подходит для изображения с wordwrap
Я нашел много рабочих решений, чтобы добавить этот текст к размеру изображения. Но в каждом случае это только одна строка текста, и так не будет обертываться, как я этого хочу.
Как установить размер шрифта в зависимости от изображения и использовать wordwrap?
EDIT: Это приложение winforms.
EDIT 2: То, что я пытался сделать:
FileStream fs = new FileStream(this.MasterPath + @"\***\***\***\" + file.Name, FileMode.Open, FileAccess.Read);
Image img = Image.FromStream(fs);
fs.Close();
Bitmap b = new Bitmap(img);
Graphics graphics = Graphics.FromImage(b);
string text = "Some Text";
StringFormat stringFormat = new StringFormat();
stringFormat.Alignment = StringAlignment.Center;
stringFormat.LineAlignment = StringAlignment.Center;
Font font = new Font("Arial", 120, FontStyle.Regular, GraphicsUnit.Pixel);
SolidBrush brush = new SolidBrush(Color.FromArgb(128, Color.Red));
Rectangle rec = new Rectangle(0, 0, b.Width, b.Height);
float sy = (float)b.Height/(float)1240; //I used 1240 and 1844 because on an image with
float sx = (float)b.Width/(float)1844; //this size the text had the right size
graphics.ScaleTransform(sx, sy);
graphics.DrawString(text, font, brush, rec, stringFormat);
b.Save(this.MasterPath + @"\***\***\***\" + file.Name, img.RawFormat);
img.Dispose();
b.Dispose();
Вы не упомянули, что приложение, которое вы делаете? Win Forms, веб-приложение, мобильное приложение, ...? И почему бы вам просто не создать образ по умолчанию, который можно масштабировать до любого требуемого размера? – Oceans
О, извините, это приложение winforms. –
Я не использую изображение по умолчанию, потому что отношение между шириной и высотой целевого изображения отличается, поэтому текст на изображении по умолчанию будет растянут или если я сосредоточу изображение по умолчанию, не будет охватывать все изображение –