Такое ощущение, что длина и высота (иначе - размеры) прямоугольника считаются* по формуле:
D=B-abs(A)
(вместо D=B-A)
То есть в рассмотренном выше случае, вместо прямоугольника в 650 пкс длиной мы получаем 650-abs(-50)=650-50=600.
А вот если мы укажем длину 650+50, т.е. 700, и выполним код, то результат буде идеален (получаемое изображение соответствует ожидаемому). Длина при этом как раз равна 700-50=650.
Эта же закономерность была мной проверена на остальных размерах.
Я конечно, заделаю поправку - но не комильфо.
* - вы, конечно, понимаете условность оборота: можно сказать "соответствует в пересчёте", "подчиняется закону", а в следствие чего такая зависимость наступает - известно лишь разработчику.