Получить новые координаты x, y точки на повернутом изображении

У меня есть значки Google Maps, которые мне нужно повернуть на определенные углы перед рисованием на карте с помощью MarkerImage . Я выполняю вращение на лету в Python с помощью PIL, и получившееся изображение имеет тот же размер, что и исходное - 32x32. Например, со следующим маркером Google Maps по умолчанию: icon before rotation , поворот на 30 градусов против часовой стрелки достигается с помощью следующего кода Python:

# full_src is a variable holding the full path to image
# rotated is a variable holding the full path to where the rotated image is saved
image = Image.open(full_src)
png_info = image.info
image = image.copy()
image = image.rotate(30, resample=Image.BICUBIC)
image.save(rotated, **png_info)

Результирующее изображение icon rotated 30 degrees counter-clockwise

Сложная задача - получить новую точку привязки для использования при создании MarkerImage с использованием нового повернутого изображения. Это должен быть заостренный конец значка. По умолчанию точкой привязки является нижняя середина [определяется как (16,32) в координатах x, y, где (0,0) - верхний левый угол]. Может кто-нибудь объяснить мне, как я могу легко сделать это с помощью JavaScript?

Спасибо.

Обновление от 22 июня 2011 г .: Разместил неправильно повернутое изображение (исходное было на 330 градусов против часовой стрелки). Я исправил это. Также добавлена ​​передискретизация (Image.BICUBIC), которая делает повернутый значок более четким.

11
задан Simon Kagwi 22 June 2011 в 07:47
поделиться