Ты прав, и в этом даже нет ничего сложного. Мы идем по строкам сверху вниз-слева направо и читаем пиксели. Как только находим полностью пустую строку, считаем, что ряд закончился. Полностью пустая колонка - колонка закончилась... Проблема понятна? Даже, если мы введем поправку на начало (не пропускать ряды\колонки, пока не встречен хотя бы один непрозрачный пиксель), и реализуем пропуск полностью пустых строк "между" рядами без увеличения счетчика, то на выходе получим традиционную для мейкера проблему - производительности. get_pixel - очень медленная операция и на что бы проверить таким образом картинку 200х200 пикселей на средней машине понадобится... скажем, секунда. А теперь представь себе анимацию, которая, при инциализации, тормозит 1 секунду.Ну, а раскадровки, обычно, не ограничиваются столь скромными размерами и обсчет картинки 2000х300 вполне может повесить мейкер на приснопамятные 10 секунд, после которых тот закроется с ошибкой.
Ну и юзер, естественно. Ему достаточно увеличить прозрачную область на один ряд\строку и на выходе у тебя поедут все кадры.
Так что хранить лучше не количество рядов\колонок, а ширину\высоту одного кадра.
Но насчет get_pixel замечание верное - я бы предложил использовать крайний пиксель для хранения данных. Ведь в нашем распоряжении целых 32 бита (4 байта) - три канала цвета + альфа. И, манипулируя ими, можно сохранять любую информацию.(Это на волне вдохновения от решения разработчиков Spore, где вся информация о сгенерированном создании сохраняется в его картинку
).
Социальные закладки