Используйте GDI + с C # для создания изображения для сайта - PullRequest
1 голос
/ 16 декабря 2010

Я хотел бы использовать GDI для создания текстовых изображений с моими шрифтами на сервере, который будет обслуживаться на моем сайте.

Я хочу использовать любой шрифт на своих сайтах, но, конечно, не смог использоватьлюбой шрифт на веб-сайте ... так что я думаю, мне нужно было бы самому генерировать изображения текста.

Идеи, как этого добиться?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 16 декабря 2010
private void button1_Click( object sender, EventArgs e )
{
    using( Font f = new Font( "Times New Roman", 22f ) )
    {
        pictureBox1.Image = CreateImage( "TEXT", pictureBox1.Size, f, Color.Black );
    }
}

Bitmap CreateImage( string text, Size imageSize, Font font, Color fontColor )
{
    Bitmap image = new Bitmap( imageSize.Width, imageSize.Height );
    using( Graphics g = Graphics.FromImage( image ) )
    using( Brush brush = new SolidBrush( fontColor ) )
    {
        g.DrawString( text, font, brush, new PointF( 0, 0 ) );
    }

    return image;
}

Это просто создаст изображение с текстом определенного размера и назначит его для Picturebox.Конечно, вам нужно добавить функциональность для настройки выравнивания и тому подобного, но это основная идея.Создайте изображение, получите из него объект Graphics и нарисуйте строку.

Вы также можете получить ширину и высоту нарисованной строки, используя некоторый шрифт 'f', с помощью метода Graphics.MeasureString.

1 голос
/ 16 декабря 2010

Пример кода с жестким кодированием для наглядности:

Bitmap b = new Bitmap(200, 100);
using (Graphics g = Graphics.FromImage(b)) {
    g.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias;
    g.DrawString("Hello World!", new Font("Tahoma", 12), Brushes.DarkBlue, 0, 0);
    b.Save("c:\\MyPic.bmp");
}

Размер изображения (200x100), текст, шрифт и начальное местоположение (0,0), а также целевой путь жестко заданы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...