ReadPixels не считывает BitMap-у если его размеры больше DeviceWidth() или DeviceHeight()

  1. 4 г. назад

    Код:

    ReadPixels(pixels,0,0,DeviceWidth()+1,DeviceHeight()+1)

    Результат:
    Monkey Runtime Error: Invalid pixel rectangle

    Учитывая то, что нет возможности считать изображение в BitMap-у напрямую все выглядит очень печально…

    Остается уповать на то, что приблуда описанная в этой (http://monkeycoder.co.nz/Community/post.php?topic=3482&post=36720 ) ветке работает правильно во всех таргетах…

    Или может я что то не понял?

  2. devolonter

    6 Jun 2014 Администратор

    ReadPixels читает пиксели с экрана следовательно это функция не может прочитать прямоугольник большего размера. Выход тут один — читать порциями. Т.е. читаем то что помещается на экран, смещаем изображение и еще раз читаем (не забываем указать смешение для результирующего массива). Повторяем до тех пор, пока не прочитаем все изображение. Понятно дело — это не очень удобно, но достаточно один раз написать подобную универсальную функцию и использовать для всех больших изображений. Правда, не стоит забывать о скорости, эта операция будет довольно таки затратной по времени. особенно на мобильных девайсах.

    Что же касается модуля. К сожалению, текущая версия не совместима с последней версией mojo, но это исправимо. А так, это хорошее решение, наверное даже более правильное, но не кроссплатформенное. Для недостающих платформ код придется реализовывать самому.

или зарегистрируйтесь чтобы комментировать!