PDA

Просмотр полной версии : Сглаживание изображений


MaskiShow
21.11.2009, 00:55
Во флешке есть картинки в мувике. Как их можно сглаживать при воспроизведении c зумом (когда увеличиваем размеры флешки) по аналогии с myvideo.smoothing = true?

mooncar
21.11.2009, 10:34
Либо, если картинки загрузили извне, внутри onLoadInit
target_mc.forceSmoothing = true ;
либо, если аттачили, или просто картинки зашиты в мувики, то в библиотеке нужно поставить галочку на "Allow Smoothing" в свойствах картинки.

MaskiShow
21.11.2009, 17:23
Спасибо.
Mc.forceSmoothing работает даже если картики непосредственно находятся в мувике.

AlexStukoff
18.12.2009, 11:02
ну у кого работает а у кого и нет :)

К сожалению способа сглаживать картинку загруженную в программно(!) созданный MovieClip как-то нету :(

mooncar
18.12.2009, 11:22
Исходник выложите с проблемой.

intrdr
16.03.2010, 19:46
Всем привет!
Такая же фигня. Необходимо программно сгладить картинку, так как она загружается из вне, а не находится в библиотеке.
Вот что написал, но это не работает. Подскажите как надо.

mclListener.onLoadInit = function(img_mc:MovieClip) {
img_mc.forceSmoothing = true;
};
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
image_mcl.loadClip(imgLink, img_mc);

mooncar
16.03.2010, 20:47
Ваш код должен работать, просто эффект от этого сглаживания проявляется в большей степени, когда после загрузки картинки происходит его масштабирование (уменьшение), и появляется дребезг, также особо заметный при движении.
Посмотрите вложенный пример и обратите внимание на изменения при следующих действиях:

1) Поотключайте-повключайте сглаживание в процессе движения картинки с помощью кнопки.
2) Уберите строку moveMc (img_mc); совсем, чтобы движения не происходило и также закомментируйте img_mc.forceSmoothing = true;, запустите ролик, посмотрите как будет без программного сглаживания. Раскомментируйте опять строку, и опять запустите чтобы увидеть разницу.

Особо заметен эффект на границах цветовых зон (см. границу окон у локомотива, сам монорельс) и мелких вертикальных линиях (ряды окон у небоскребов).

Причем визуально сглаживание сильно зависит от того, какая именно пропорция была при уменьшении масштаба, поскольку от этого зависит степень визуального пиксельного "дребезга".

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

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

intrdr
16.03.2010, 23:11
Спасибо за оперативный ответ!
Именно для масштабирования и использую эту функцию. Но первый вариант не работал.
Пришлось написать так:
onClipEvent (load) {
this.forceSmoothing = true;
}

К сожалению ваш пример не открылся, у меня тут Flash8 :)

mooncar
16.03.2010, 23:47
Пример для 8-ки.

intrdr
18.03.2010, 16:57
О... отлично!
Посмотрел. Тоже как вариант подходит. Но всё же и итоге использовал forceSmoothing при onClipEvent (load)

Вот что из этого получилось:
http://miledy.lv

deselector
20.03.2010, 14:13
Пример для 8-ки.

Спасибо Mooncar, тоже пригодилось!http://lh6.ggpht.com/_RqHk8bkX2fA/S3qy1SSK_LI/AAAAAAAAABo/gvyqPddvZaM/1pxstyle.gif (http://www.yaren.ru)