Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   пиксельные шрифты и сглаживание (http://www.flasher.ru/forum/showthread.php?t=151976)

v0vka 09.03.2011 20:46

пиксельные шрифты и сглаживание
 
Здравствуйте, проблема существует давно и многими успешно решается.
Подскажите как решить задачу отображения шрифта (например такого) без сглаживания?

пробовал передавать в bitmapData
пробовал различные параметры TextFormat
не пробовал только создание текстового поля с настройками bitmap text и экспорт этого символа в swc для дальнейшего использования, мне это решение вообще кажется не удобным

in4core 09.03.2011 20:54

Честно говоря вопрос не понятен. Я уже давно работаю с пикс шрифтами, а точнее почти только с ними. Засунул шрифт во флешку создал текстовое поле, сделал ембед - УКАЗАЛ ( что важно ) реальный размер, обычно это 8-12 px . Отталкивая от iFlash705 например - там 8 px. В антиалиас тайп ставим NORMAL - все. никаких проблем не возникнет. Или ваш вопрос например про Ариал - и как из него убрать сглаживание? Для этого есть параметр shrapness /

v0vka 09.03.2011 21:05

Привожу пример класса которым рисую текст
Код AS3:

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);
                }
 
        }
 
}

Вот результат: http://img-fotki.yandex.ru/get/5004/..._1d31a489_orig

Добавлено через 9 минут
Хотя сейчас работаю со шрифтом dpix_8pt
код тот же
результат: http://img-fotki.yandex.ru/get/5004/..._3aebabc0_orig

Добавлено через 10 минут
в чем причина такого поведения?

Добавлено через 21 минуту
протестировал около 30 шрифтов
из 30 в собственном размере шрифта (вычислял подбором) без сглаживания отобразились только 7
от сюда вывод: либо дело в шрифтах, либо нужно искать способ отключения сглаживания

Wolsh 09.03.2011 23:41

Сам шрифт некачественный (Tempesta).

wvxvw 09.03.2011 23:53

Флексовый компилятор не умеет вообще, в принципе работать с пиксельными шрифтами. Т.е. он просто не смотрит в пиксельные матрицы, т.как у него даже модуля нет, который мог бы их интерпретировать как-то. Он только работает с вектрными матрицами. Так что компилируйте во Флеше, если есть такая возможность, а потом из флешки уже готовой перелинковывайте, или просите кого-то вам скомпилировать его. СДК такое просто не сможет.

Wolsh 10.03.2011 00:05

Вложений: 1
Позволю себе не согласиться. Вот компиляция в FD c flex_sdk. Если шрифт правильный псевдопиксельный, то все и будет отлично в дефолтном размере (а псевдопиксельные для других размеров и не могут применяться)
/увеличение скрина в фотошопе - в размере 8рх никакого сглаживания вообще./

v0vka 10.03.2011 00:08

Цитата:

Сообщение от wvxvw (Сообщение 979127)
Флексовый компилятор не умеет вообще, в принципе работать с пиксельными шрифтами. Т.е. он просто не смотрит в пиксельные матрицы, т.как у него даже модуля нет, который мог бы их интерпретировать как-то. Он только работает с вектрными матрицами. Так что компилируйте во Флеше, если есть такая возможность, а потом из флешки уже готовой перелинковывайте, или просите кого-то вам скомпилировать его. СДК такое просто не сможет.

Подозревал что без Flash не обойдется.
Скажите а можно каким либо образом скомпилировать шрифт в swc (с нужными параметрами отображения) и от туда его подключить в проект?
Я могу и полносью проект компилировать флешем из FD, но всётаки этого делать не хочется.

Wolsh 10.03.2011 00:10

И, простите, я что-то пропустил? Flash IDE стал работать с настоящими пиксельными шрифтами? С .fon и .fnt ? Только у этих форматов есть матрицы. Псевдопиксельные шрифты - такие же точно векторные, просто отхинтованы по "пикселям".

v0vka 10.03.2011 00:15

Цитата:

Сообщение от Wolsh (Сообщение 979129)
Позволю себе не согласиться. Вот компиляция в FD c flex_sdk. Если шрифт правильный псевдопиксельный, то все и будет отлично в дефолтном размере (а псевдопиксельные для других размеров и не могут применяться)
/увеличение скрина в фотошопе - в размере 8рх никакого сглаживания вообще./

Согласен полностью, парадокс залючается в том что одни шрифты отображаются хорошо, другие со сглаживанием, какой бы размер не выставлялся.
В общем наверное дело в шрифтах.

Wolsh 10.03.2011 00:27

Я же написал в 4-м посте. Как пример - эта самая Темпеста - подается как псевдопиксельный шрифт. Но даже на картинке превью со страницы, где можно скачать этот шрифт (ваша ссылка) отчетливо видно, что шрифт вообще никуда не годен - ломаный вектор, пустоты в глифах, переходы не отхинтованы вообще, то есть элементы не укладываются четко в пиксельную сетку. (можно почитать чуть подробней здесь) Этот шрифт никогда не будет отображен как пиксельный, разве что после обработки Flash'овским импортером, если поставить сглаживание bitmap text - no antialias (растровый текст - без зглаживания). Эта опция позволяет при импорте создать из обычного шрифта псевдопиксельный, то есть Flash сам отхинтует глифы, но только под заданный полю размер.


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

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