прерывистая отрисовка растровых данных с масштабирующей матрицей

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

Кто-нибудь знает, каковы параметры этой верхней границы? Это где-то задокументировано?


person jedierikb    schedule 10.09.2009    source источник


Ответы (4)


В документах говорится:

Максимальная ширина и максимальная высота объекта BitmapData - 2880 пикселей.

Я предполагаю, что это тот предел, который вы достигли.

person grapefrukt    schedule 11.09.2009

примечание: во flash 10 этот предел был снят

person pigiuz    schedule 11.09.2009

На самом деле эта тема довольно сложна ... есть несколько задокументированных ограничений, но много разных недокументированных ограничений в разных сценариях и версиях Flash Player ... например, проверьте этот пост и его комментарии: http://www.bit-101.com/blog/?p=2067

И если позволите процитировать самого себя ^^

У меня была та же проблема, и я думаю, что это не ограничение draw (), а ограничение DisplayObject ... например:

var bmp=new BitmapData(8000,100,false,0);
var bmp2=new BitmapData(8000,10,false,0xFF0000);
bmp.draw(bmp2);

отлично работает… то же самое с другими методами, такими как fillRect и applyFilter. Однако это не удастся, если вы попытаетесь нарисовать () любой DisplayObject за пределами 4079 пикселей по горизонтали или 4082 пикселей по вертикали (согласно getColorBoundsRect).

Кроме того, здесь, в SO, есть несколько тем с похожими вопросами: максимальный размер спрайт в as3?

person Cay    schedule 11.09.2009

Хотя BitmapData имеет верхнюю границу своего размера при построенном (2880x2880 в f9 , 16,775,168 общей площади пикселей в f10), мы обнаружили, что при преобразовании bitmapData и рисовании только его части применяется несколько иное ограничение.

Если размер ваших bitmapData составляет 1x1px, вы можете масштабировать его до максимального размера 8191x8191px (намного больше, чем BitmapData, который вы можете построить в f10) и перенести растровое изображение в другое растровое изображение. Если вы масштабируете растровое изображение больше, чем это, оно просто не будет отображаться.

person jedierikb    schedule 11.09.2009