Згладжування растрових зображень, Adobe Flash, ActionScript 3

У наведеному прикладі є дві картинки (у форматі PNG), які плавно збільшуються при наведенні курсору мишки. Але, якщо ви не сліпий, то легко помітите, як змінюється якість картинок зі збільшенням розмірів. Особливо у куточках. Погодьтеся, це зовсім не тішить око.

Давайте спробуємо ЦЕ виправити.

Відкриваємобібліотеку проекту і знаходимо там першу картинку. Правим клацанням мишки викликаємоконтекстне меню :

actionscript

У контекстному меню вибираємо пунктВластивості. Відкривається вікноВластивості растрового зображення :

actionscript

У цьому віконці нас цікавить перша вкладка -Параметри. Ставимо галочку уДозволити згладжування, а у списку вибираємо якістьстиснення. СтисненняJPEG може заощадити вам заповітні кілобайти, але без стиснення ви отримаєте якіснішу картинку. Вибирайте залежно від ваших пріоритетів.

Тиснемо кнопкуOK і дивимося результат:

До лівої картинки ми застосували згладжування, а праву залишили без змін. Наведіть курсор на кожну картинку.

Який вам результат?

Погодьтеся, що ліва картинка навіть після масштабування виглядає набагато симпатичніше, ніж права. Згоден, не ідеально. Але це краще, ніж до згладжування.

Отже, ми тепер уміємо вручну налаштовувати згладжування у растрових зображень у наших флеш-проектах.

Але як бути, якщо згладжування треба налаштувати не вручну, а через ActionScript (точніше, через ActionScript 3.0).

Для початку нам треба створити картинку, яку ми будемо використовувати в коді. Знову йдемо в бібліотеку проекту та викликаємоконтекстне меню растрового зображення. Вибираємо пунктВластивості і відкривається вже знайоме нам вікноВластивостірастрового зображення. Але цього разу нас цікавить вкладка ActionScript. Ставимо галочку у пунктуЕкспортувати для ActionScript і як ім'я класу вводимоMyBitmapData :

згладжування

А тепер пишемо код.

Код ActionScript 3.0:

var myBitmapData:MyBitmapData = New MyBitmapData(); var bitmap: Bitmap = новий Bitmap (myBitmapData); addChild(bitmap); bitmap.x = 20; bitmap.y = 20; bitmap.scaleX = bitmap.scaleY = 2;

Вище наведено приклад того, що ми можемо отримати, якщо не використовуватимемо згладжування. Для більшої наочності я збільшив розміри картинки вдвічі.

Код ActionScript 3.0:

var myBitmapData:MyBitmapData = New MyBitmapData(); var bitmap: Bitmap = новий Bitmap (myBitmapData); bitmap.smoothing = true; addChild(bitmap); bitmap.x = 20; bitmap.y = 20; bitmap.scaleX = bitmap.scaleY = 2;

Код ActionScript 3.0:

var myBitmapData:MyBitmapData = New MyBitmapData(); var bitmap: Bitmap = новий Bitmap (myBitmapData, "auto", true); addChild(bitmap); bitmap.x = 20; bitmap.y = 20; bitmap.scaleX = bitmap.scaleY = 2;

І в першому, і в другому випадку ми встановлюємо згладжування. Але в першому випадку ми це робимо через властивістьsmoothing, а в другому - черезтретій параметр конструктора Bitmap.

Що хотіли, те й здобули :-)

І сьогодні у мене все. Дякую за увагу.

Дата завантаження: 2015-01-07

Рейтинг посту: 4