c# написать текст на растровом изображении



У меня следующая проблема. Я хочу сделать некоторые графики в форме C# windows.
Я хочу прочитать растровое изображение в свою программу и после этого написать текст на этом растровом изображении. В конце концов, я хочу, чтобы это изображение загружалось в pictureBox. И это мой вопрос. Как я могу это сделать?



пример, как должно работать:



Bitmap a = new Bitmap(@"pathpicture.bmp");
a.makeTransparent();
// ? a.writeText("some text", positionX, positionY);
pictuteBox1.Image = a;


можно ли это сделать?

949   5  

5 ответов:

Bitmap bmp = new Bitmap("filename.bmp");

RectangleF rectf = new RectangleF(70, 90, 90, 50);

Graphics g = Graphics.FromImage(bmp);

g.SmoothingMode = SmoothingMode.AntiAlias;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
g.DrawString("yourText", new Font("Tahoma",8), Brushes.Black, rectf);

g.Flush();

image.Image=bmp;

очень старый вопрос, но просто нужно было построить это для приложения сегодня и найти настройки, показанные в других ответах, не приводят к чистому изображению (возможно, поскольку новые параметры были добавлены в более поздних версиях .Net).

Если вы хотите, чтобы текст в центре изображения, вы можете сделать

вы должны использовать Graphics класс для записи на растровое изображение.

в частности, один из DrawString методы.

Bitmap a = new Bitmap(@"path\picture.bmp");

using(Graphics g = Graphics.FromImage(a))
{
  g.DrawString(....); // requires font, brush etc
}

pictuteBox1.Image = a;
var bmp = new Bitmap(@"path\picture.bmp");
using( Graphics g = Graphics.FromImage( bmp ) )
{
    g.DrawString( ... );
}

picturebox1.Image = bmp;

Если вы хотите обертывание ваш текст, то вы должны сделать свой текст в прямоугольник:

RectangleF rectF1 = new RectangleF(30, 10, 100, 122);
e.Graphics.DrawString(text1, font1, Brushes.Blue, rectF1);

посмотреть: https://msdn.microsoft.com/en-us/library/baw6k39s(в=против 110).аспн

Comments

    Ничего не найдено.