Tôi có các biểu tượng Google Maps mà tôi cần xoay theo các góc nhất định trước khi vẽ trên bản đồ bằng cách sử dụng MarkerImage. Tôi thực hiện phép xoay vòng trong Python bằng PIL và hình ảnh kết quả có cùng kích thước với bản gốc - 32x32. Ví dụ, với mặc định marker Google Maps sau: , một 30 độ conter chiều kim đồng hồ xoay được thực hiện bằng cách sử dụng mã python sau:Nhận tọa độ x, y mới của một điểm trong hình ảnh được xoay
# 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)
Hình ảnh kết quả là
Các chút khéo léo là nhận điểm neo mới để sử dụng khi tạo MarkerImage bằng hình ảnh xoay mới. Điều này cần phải là đầu nhọn của biểu tượng. Theo mặc định, điểm neo là đáy ở giữa [được định nghĩa là (16,32) theo toạ độ x, y trong đó (0,0) là góc trên cùng bên trái]. Ai đó có thể vui lòng giải thích cho tôi làm thế nào tôi có thể dễ dàng đi về điều này trong JavaScript?
Cảm ơn.
Cập nhật ngày 22 tháng 6 năm 2011: Đã đăng sai hình ảnh được xoay (ảnh gốc là 330 độ ngược chiều kim đồng hồ). Tôi đã sửa chữa điều đó. Ngoài ra thêm resampling (Image.BICUBIC) mà làm cho biểu tượng xoay rõ ràng hơn.
@Trufa: cảm ơn cho lời khuyên. –