Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   TextField to BitmapData with Antialiasing (http://www.flasher.ru/forum/showthread.php?t=107046)

ALiEN_ 24.01.2008 19:43

TextField to BitmapData with Antialiasing
 
Вопрос может и детский, но с реализацией я туплю.

Хочется сделать текст прозарчным и поворачивать его, без embed fonts.

Вариант отрисовать текст в BitmapData с прозрачностью работает, но хочется что бы края букв не были рваными. Т.е. хочется применить к отрисованному тексту эффект сглаживания.

Может кто-то уже реализовывал? Может это делается проще?


Пока оставил самый простой вариант - применяю фильтр Glow с особыми параметрами, гребенка заметно пропадает.
Код:

var blurX:Number = 2;
var blurY:Number = 2;
               
var color:Number = 0x000000;
var alp:Number = 1;
var strength:Number = 2;
var inner:Boolean = true;
var knockout:Boolean = false;
var quality:Number = BitmapFilterQuality.HIGH;
               
var filter:BitmapFilter = new GlowFilter(color, alp, blurX, blurY, strength, quality, inner, knockout);


fljot 24.01.2008 20:01

сглаживание - какой-то из параметров функции draw.. 5ый чтоли, посмотрите

ALiEN_ 24.01.2008 20:12

Имеется ввиду параметр smoothing?

"A Boolean value that determines whether a BitmapData object is smoothed
when scaled or rotated, due to a scaling or rotation in the matrix parameter."

Фигня в том, что отрисовка шрифта все равно происходит без сглаживания (антиалиасинга) ...

fljot 24.01.2008 20:32

пардон, анлиалисинг только с эмбедами работает

ALiEN_ 24.01.2008 20:38

Может написать свой простенький антиалиасинг? Есть ещё у кого-нибудь идеи?

LinuxVideo 29.01.2008 15:03

Если попиксельно рисовать долго. Поэтому тупо завел битмапку со шрифтом, откуда побуквенно копирую - решил кучу проблем.

ALiEN_ 31.01.2008 20:17

А пардон, откуда ты в битмап копируешь шрифт?
Или у тебя он отрисован заранее для всех языков и ты его подтягиваешь с сервера?

Еще раз повторюсь, проблема в антиалиасинге при отрисовке текста в BitmapData.

2morrowMan 31.01.2008 21:39

Можеш попробывать так:
выводиш сначала текст в tmpBd с размером в Х раз большым нужного, потом этот tmpBd перерисовываеш на новом finalBd только в Х раз меньшым размером со сглаживанием, потом tmpBd.dispose() и т.д.
Х - подбирай: 2, 3, 4... :)

Надеюсь идея понятна, можеш поексперементировать...

LinuxVideo 02.02.2008 00:28

> Или у тебя он отрисован заранее для всех языков и ты его подтягиваешь с сервера?

Отрисован заранее, только для русского. Тупо зашит в флешку. А больше и не нужно. Да и не знаю, как еще...


> выводиш сначала текст в tmpBd с размером в Х раз большым нужного, потом этот tmpBd перерисовываеш на новом finalBd только в Х раз меньшым размером со сглаживанием

Испробовано. Х - это где-то от 4, причем результат не самый идеальный, поскольку граница с альфой остается рваной, поэтому приходится рисовать на белом фоне, а потом смешивать. А больше 4 - это легко вылезти на отведенные 2880px


Часовой пояс GMT +4, время: 09:49.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.