Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Печать повернутого текста 2

Delphi , Графика и Игры , Canvas

Печать повернутого текста 2


procedure TextOutVertical(var bitmap: TBitmap; x, y: Integer; s: string);
var
  b1, b2: TBitmap;
  i, j: Integer;
begin
  with bitmap.Canvas do
  begin
    b1 := TBitmap.Create;
    b1.Canvas.Font := lpYhFont;
    b1.Width := TextWidth(s) + 1;
    b1.Height := TextHeight(s) + 1;
    b1.Canvas.TextOut(1, 1, s);

    b2 := TPackedBitmap.Create;
    b2.Width := TextHeight(s);
    b2.Height := TextWidth(s);
    for i := 0 to b1.Width - 1 do
      for j := 0 to b1.Height do
        b2.Canvas.Pixels[j, b2.Height + 1 - i] := b1.Canvas.Pixels[i, j];
    Draw(x, y, b2);
    b1.Free;
    b2.Free;
  end
end;

Here's the translation of the content into Russian:

Это процедура в Delphi (Pascal), которая печатает текст на rotated TBitmap объекте с помощью метода TextOut канваса. Вращение достигается созданием нового TPackedBitmap объекта, копированием пикселей из оригинального бита и затем рисованием нового бита в желаемом положении.

Вот разбивка того, что код делает:

  1. Он создает два TBitmap объекта: b1 и b2.
  2. Он настраивает шрифт для b1 с помощью lpYhFont, который, вероятно, ссылается на объект шрифта.
  3. Он рассчитывает ширину и высоту текста, вызывая TextWidth и TextHeight соответственно, и создает бита b1 с этими размерами.
  4. Он рисует текст на b1 с помощью TextOut.
  5. Он создает новый TPackedBitmap объект b2, который используется для хранения вращенных пикселей.
  6. Он проходит через каждый пиксель в b1 и копирует его в соответствующее положение в b2. Вращение достигается обменом координат x и y, эффективно отражая текст горизонтально.
  7. Наконец, он рисует b2 в желаемом положении (x, y) с помощью метода Draw канваса.

Результат - вращенная версия оригинального текста.

Вот некоторые предложения по улучшению:

  1. Рассмотрите использование TRotate вместо ручной вращения пикселей. Это сделает код более эффективным и легче для поддержки.
  2. Вы можете использовать TPicture вместо TBitmap, чтобы хранить вращенный образ, так как он предоставляет больше функциональности.
  3. Вы можете добавить обработку ошибок, чтобы проверять, не является ли бит или шрифт null перед использованием их.
  4. Рассмотрите добавление параметра для указания угла вращения (например, 90 градусов) вместо жесткого кодирования горизонтального отражения.

В целом, это крутая решенка для вращения текста в Delphi, но есть способы улучшить ее еще дальше.

В статье описывается процедура TextOutVertical для печати текста в вертикальном направлении на изображении Bitmap с помощью Delphi.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Canvas ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-19 18:00:52/0.0070791244506836/2