![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Dec 2009
Сообщений: 58
|
Здравствуйте, проблема существует давно и многими успешно решается.
Подскажите как решить задачу отображения шрифта (например такого) без сглаживания? пробовал передавать в bitmapData пробовал различные параметры TextFormat не пробовал только создание текстового поля с настройками bitmap text и экспорт этого символа в swc для дальнейшего использования, мне это решение вообще кажется не удобным |
|
|||||
|
Честно говоря вопрос не понятен. Я уже давно работаю с пикс шрифтами, а точнее почти только с ними. Засунул шрифт во флешку создал текстовое поле, сделал ембед - УКАЗАЛ ( что важно ) реальный размер, обычно это 8-12 px . Отталкивая от iFlash705 например - там 8 px. В антиалиас тайп ставим NORMAL - все. никаких проблем не возникнет. Или ваш вопрос например про Ариал - и как из него убрать сглаживание? Для этого есть параметр shrapness /
|
|
|||||
|
Регистрация: Dec 2009
Сообщений: 58
|
Привожу пример класса которым рисую текст
package flat.comp { import flash.display.*; import flash.geom.Matrix; import flat.gfx.Draw; import flash.text.*; import flat.gfx.Fonts; /** * ... * @author blade */ public class MenuItem extends Sprite { private var title :String; private var itemAction :uint; private var color :uint; private var itemWidth :uint; private var itemHeight :uint = 1; private var drawBg :Draw; static var size:uint = 6; private static var language :uint; public static const ACTION_NO :uint = 0; [Embed(source='../../../lib/auxd.ttf', fontFamily="Hardpixel", embedAsCFF="false")] private var Hardpixel:Class; public function MenuItem(title:String, itemAction:uint, color:uint, width:uint) { // Save parameters of item this.title = title; this.itemAction = itemAction; this.color = color; this.itemWidth = width; // Draw drawBg = new Draw(Draw.RECTANGLE, 0, 0, itemWidth, itemHeight, color); // Item text var format:TextFormat = new TextFormat(); format.font = "Hardpixel"; format.size = size; format.color = 0xFFFFFF; size++; var tf:TextField = new TextField(); tf.embedFonts = true; tf.text = size+" px: This is TEST text"; tf.antiAliasType = AntiAliasType.NORMAL; tf.setTextFormat(format); tf.x += 15; tf.y += 15; // Add to MenuItem object canvas addChild(drawBg); addChild(tf); } } } Добавлено через 9 минут Хотя сейчас работаю со шрифтом dpix_8pt код тот же результат: Добавлено через 10 минут в чем причина такого поведения? Добавлено через 21 минуту протестировал около 30 шрифтов из 30 в собственном размере шрифта (вычислял подбором) без сглаживания отобразились только 7 от сюда вывод: либо дело в шрифтах, либо нужно искать способ отключения сглаживания |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Сам шрифт некачественный (Tempesta).
__________________
Reality.getBounds(this); |
|
|||||
|
Modus ponens
|
Флексовый компилятор не умеет вообще, в принципе работать с пиксельными шрифтами. Т.е. он просто не смотрит в пиксельные матрицы, т.как у него даже модуля нет, который мог бы их интерпретировать как-то. Он только работает с вектрными матрицами. Так что компилируйте во Флеше, если есть такая возможность, а потом из флешки уже готовой перелинковывайте, или просите кого-то вам скомпилировать его. СДК такое просто не сможет.
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Dec 2009
Сообщений: 58
|
Цитата:
Скажите а можно каким либо образом скомпилировать шрифт в swc (с нужными параметрами отображения) и от туда его подключить в проект? Я могу и полносью проект компилировать флешем из FD, но всётаки этого делать не хочется. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Позволю себе не согласиться. Вот компиляция в FD c flex_sdk. Если шрифт правильный псевдопиксельный, то все и будет отлично в дефолтном размере (а псевдопиксельные для других размеров и не могут применяться)
/увеличение скрина в фотошопе - в размере 8рх никакого сглаживания вообще./
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Dec 2009
Сообщений: 58
|
Цитата:
В общем наверное дело в шрифтах. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
И, простите, я что-то пропустил? Flash IDE стал работать с настоящими пиксельными шрифтами? С .fon и .fnt ? Только у этих форматов есть матрицы. Псевдопиксельные шрифты - такие же точно векторные, просто отхинтованы по "пикселям".
__________________
Reality.getBounds(this); |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Я же написал в 4-м посте. Как пример - эта самая Темпеста - подается как псевдопиксельный шрифт. Но даже на картинке превью со страницы, где можно скачать этот шрифт (ваша ссылка) отчетливо видно, что шрифт вообще никуда не годен - ломаный вектор, пустоты в глифах, переходы не отхинтованы вообще, то есть элементы не укладываются четко в пиксельную сетку. (можно почитать чуть подробней здесь) Этот шрифт никогда не будет отображен как пиксельный, разве что после обработки Flash'овским импортером, если поставить сглаживание bitmap text - no antialias (растровый текст - без зглаживания). Эта опция позволяет при импорте создать из обычного шрифта псевдопиксельный, то есть Flash сам отхинтует глифы, но только под заданный полю размер.
__________________
Reality.getBounds(this); |
![]() |
![]() |
Часовой пояс GMT +4, время: 07:04. |
|
|
« Предыдущая тема | Следующая тема » |
|
|