В первую очередь нужно убедиться, что клиент понимает то, чего просит. Вполне возможно, он как болванчик повторил где то услышанную и заученную фразу. Если это так, то гораздо лучшим (и для него и для вас) будет убедить его в профитности использования знакомых вам технологий
Nikita-Fast, вру, есть еще организационное решение) лицу, ответственному за наполнение картинками строго настрого наказать резать картинки до одинакового размера\пропорций с объектом точно по центру
IIITRIX, да, чтобы этого избежать, нужно чтоб фронт и бэк были доступны на одном домене. Либо использавть для фронта джанговские возможности отдавать статику, либо ставить перед фронт и бэк серверами nginx для проксирования и все запросы делать на него
Вы и сами прекрасно поняли, почему происходит бесконечный цикл. Если инкрементировать i в начале итерации, а затем делать декремент i в конце, она так и не достигнет значения cb.length