2014-10-31 3 views
0

Когда я пытаюсь повернуть растровое изображение с помощью createjs (не изменять размер, а просто поворачивать), растровое изображение становится неровным в Chrome. В Firefox это нормально.createjs растровое изображение вращение делает изображение зазубренным в chrome

Вот мой код:

var backCard = new createjs.Bitmap(assetsLoader.getResult("back")); 
backCard.rotation = 24; 
stage.addChild(backCard); 
stage.update(); 

Любые идеи о том, как это исправить?

+0

Для меня на Firefox растровое изображение становится неровным, а на хроме и сафари оно становится сглаженным. Но я предпочитаю, как это выглядит на Firefox ... –

ответ

1

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

Включение сглаживания

Невозможно сделать это изначально, но вы можете создать обходной путь, если вы действительно хотите сгладить сглаживание: добавление фильтра размытия в действительно малых количествах к повернутым изображениям. Но имейте в виду, что размытие - очень дорогой фильтр, который вам следует избегать, но если вы его используете, вам необходимо кэшировать растровое изображение после применения фильтра для уменьшения использования ЦП.

backCard.filters = [new createjs.BlurFilter(2, 2, 1);]; // 2 is blur radius, 1 is blur quality. More quality means more expensive blur. 
var bounds = backCard.getBounds(); 
backCard.cache(bounds.x, bounds.y, bounds.width, bounds.height); 

Предотвратить сглаживание

Я думаю, что нет никакого способа сделать это еще тоже, но вы можете использовать next version of EaselJS, который позволяет определить, если объекты будут сглажены для сцены, из-за WebGL. Обратите внимание, что если WebGL не поддерживается в браузере пользователя, то EaselJS вернется к холсту HTML5, который все равно будет иметь сглаживание.

+0

Спасибо, но смазав его, он сильно размывается. Смотря плохой BlurFilter (2, 2, 1) или не делайте его другим. BlurFilter (1, 1, 1) –

+0

На Safari , этот код создает приятное сглаживание: 'new createjs.BlurFilter (1, 1, 2)'. Обратите внимание, что для качества установлено значение 2, что приводит к еще более дорогому вычислению. Я бы порекомендовал вам оставить сглаживание в браузере, вместо того, чтобы пытаться решить проблему, которая не входит в ваш код. –

+0

Кроме того, я не могу проверить это на хроме, так как я использую свой проект для проверки размытия и, я не знаю, почему фильтры просто не появляются на хроме ... –

Смежные вопросы