System.Drawing.Graphics.DrawString () выглядит странно в Ubuntu - PullRequest
2 голосов
/ 11 марта 2020

Я пытаюсь создать картинку для пользователей, когда они присоединяются и оставляют сервер на Discord. Все шло отлично, пока то, что я получал в виде картинки на Windows, на Ubuntu не выглядело совсем иначе (см. Примеры ниже). Я пробовал разные способы TextRendering, например TextRenderingHint.SingleBitPerPixelGridFit, но ни один не работал. Шрифты, которые я использовал оба раза, абсолютно одинаковы, но в Ubuntu они выглядят очень неровно.

using (Graphics grD = Graphics.FromImage(img))
{
    grD.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit;
    grD.DrawString(message, WelcomeFont, drawBrush, x1, y1, drawFormat);
    grD.DrawString(name, UsernameFont, drawBrush, x2, y2, drawFormat);
    grD.DrawString(server, ServerFont, drawBrush, x3, y3, drawFormat);

    img = new Bitmap(img, new Size(400, 225));

    return img;
}

Может кто-нибудь сказать, как мне это исправить?

Изображения:

Image1 Image2

1 Ответ

0 голосов
/ 12 марта 2020

Нарисуйте изображение в два раза шире и в два раза выше и посмотрите, улучшится ли качество. Если оно должно отображаться на веб-странице или в приложении WPF, изображение может быть масштабировано браузером или пользовательским интерфейсом приложения WPF с лучшими результатами.

. NET основные кодеки изображений не самые лучшие.

Существуют некоторые. net основные настройки API для качества текста также при рисовании текстовой строки.

...