Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.16;
Скачать: CL | DM;

Вниз

Вывод текста на 256-ти цветном bitma е   Найти похожие ветки 

 
Jimmy   (2007-08-24 17:44) [0]

Когда использую TextOut для 256-ти цветного bitmap"а, буквы выводятся без сглаживания. Как этого избежать? Заранее спасибо.


 
sniknik ©   (2007-08-24 17:51) [1]

а в 256-ти цветном bitmap-е, хватает полутонов используемых для сглаживания?
ответь и поймешь что делать.


 
Jimmy   (2007-08-24 17:57) [2]

Я добавляю в палитру цвета, используемые для сглаживания. Если делаю Canvas.Pixels[i,j]:=Color, то рисуется точка нужного цвета, а если делаю Canvas.TextOut(i,j,"A"), то полутона отсутствуют.


 
clickmaker ©   (2007-08-24 18:00) [3]

Display Properties - Appearance - Effects - ..method to smooth - ClearType?


 
Jimmy   (2007-08-24 18:10) [4]

А можно поподробнее?


 
Jimmy   (2007-08-24 19:03) [5]

Понял. Вне зависимости от этого сглаживания нет.


 
sniknik ©   (2007-08-24 19:50) [6]

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

> ...method to smooth - ClearType?
к этому бы еще
...Font.Name:= "Tahoma"; (или какой там экранный/считается им? т.к. там написано что параметр для них, но не сказано для всех...)


 
Jimmy   (2007-08-24 20:14) [7]

Шрифт я использую Times New Roman. То, что в палитре появились нужные цвета я узнаю по тому, что командой Pixel рисуется точка нужного цвета. Почему то же не происходит после TextOut?.. Допустим, я вообще не знаю, что такое палитра и т.п. Так как выводить текст со сглаживанием на 256-ти цветном bitmap"е?


 
sniknik ©   (2007-08-24 20:24) [8]

> Так как выводить текст со сглаживанием на 256-ти цветном bitmap"е?
самостоятельно, если сможешь... т.к. стандартными функциями никак. для проверки установи в виндах 256цветов и загляни под иконки на рабочем столе при установленном свойстве ([3]). не проверял, но чтото мне подсказывает что его (сглаживания) там не будет...


 
Jimmy   (2007-08-24 20:34) [9]

Я делаю так: рисую букву на 24-битном битмапе, добавляю в палитру 256-ти цветного битмапа все новые цвета, потом попиксельно считываю цвета с 24-битного и рисую на 256-ти цветном.
for i:=0 to Ib.Width-1 do
for l:=0 to Ib.Height-1 do
   begin
   Co:=Ib.Canvas.Pixels[i,l];
   if (Co<>ImColor)then
         Im.Pixels[Round(x)+i,Round(y)+l]:=Co;
  end;
Проблема в том, что это работает непозволительно долго, но работает. Когда же после добавления новых цветов я делаю TextOut(x,y,"A"), вместо вышеуказанных циклов, сглаживания не происходит. Как быть?


 
antonn ©   (2007-08-25 11:41) [10]

Canvas.Pixels[] всегда долго, можно попробывать через bitmap.scanline() - раз в 5-10 быстрее


 
@!!ex ©   (2007-08-25 18:47) [11]

> [9] Jimmy   (24.08.07 20:34)

Полутноа считаються не одинаково для символов.
Сглаживать руками не проще?



Страницы: 1 вся ветка

Текущий архив: 2007.09.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
1-1183951734
Dr. Andrew
2007-07-09 07:28
2007.09.16
Как эмулировать показ hint нажатием, например, button на форме?


15-1187596793
Sergey Masloff
2007-08-20 11:59
2007.09.16
Задачка. Контекстно-свободная грамматика для римских чисел.


1-1183818645
Ricks
2007-07-07 18:30
2007.09.16
Разминка для мозгов


2-1187873730
Алла_И
2007-08-23 16:55
2007.09.16
Копирование через Pointer


15-1187508695
Kostafey
2007-08-19 11:31
2007.09.16
Парад ярлыков