У меня есть значки Google Maps, которые мне нужно вращать под определенным углом, прежде чем рисовать на карте, используя MarkerImage. Я выполняю поворот на лету в Python, используя PIL, и получившееся изображение имеет тот же размер, что и оригинал - 32x32. Например, со следующим по умолчанию Google Maps: , вращение на 30 градусов по часовой стрелке достигается с использованием следующего кода на питоне:
# 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)
Полученное изображение
Сложный бит использует новую опорную точку при создании MarkerImage с использованием нового повернутого изображения. Это должен быть заостренный конец значка. По умолчанию опорная точка представляет собой нижнюю середину [определяемую как (16,32) в координатах x, y, где (0,0) - верхний левый угол]. Может кто-нибудь, пожалуйста, объясните мне, как я могу легко обойти это в JavaScript?
Спасибо.
Обновление 22 июня 2011 года: Прислал неправильное повернутое изображение (оригинальное было для 330 градусов против часовой стрелки). Я исправил это. Также добавлена передискретизация (Image.BICUBIC), которая делает изображение более четким.