如何在 Python 中沿圆形路径粘贴图像?
How to paste images along a circular path in Python?
简介
我正在尝试在 Python 中重新创建 Twitter 互动圈。但是,我卡在了图像的创建上。
到目前为止,我已经能够裁剪方形头像并将它们放置在使用 Pillow 创建的空白图像的中心。
如何将这些图像围绕中心图像以圆形方式放置?
如有任何帮助,我将不胜感激。我是图像处理的初学者。
示例图片
我使用 Pillow 能够实现的目标:
计算位置需要相当基础的数学(圆的数学公式)。
如果你有一个半径为 R
的圆,你必须输入角度 angle
x = R * cos(angle) + center_x
y = R * sin(angle) + center_y
Top
有角度 0
,bottom
有角度 180
,left
/right
有角度 90
/ 270
(或270
/90
)。
你必须记住 Python 在 math.sin()
中使用 radians
而不是 degrees
,math.cos()
所以你需要 math.sin(math.radians(180))
来计算180 degrees
.
如果你想把 8
图像放在圆上,那么你需要角度 360 / 8
,它给出 45
所以第一张图像可以在角度 45 * 1
上,第二张图像可以在 45 * 2
,等等
如果你想偏移 5
度然后 (45 * 1) + 5
,第二个 (45 * 2) + 5
,等等
我不确定图片的大小。圆有电路
circuit = 2 * PI * R
所以对于 8
图片,每个图片都应该使用 diagonal
小于
的圆圈
diagonal = circuit / 8
给出半径
radius = diagonal / 2
要创建此圈子,您需要带有
的图像
width = diagonal
height = diagonal
如果电路上有 8 张图像,则图像之间有 7 个间隙。
如果您想要大小为 5 像素的间隙,那么您可能需要
gap = 5
diagonal = (circuit - 7*gap) / 8
简介
我正在尝试在 Python 中重新创建 Twitter 互动圈。但是,我卡在了图像的创建上。
到目前为止,我已经能够裁剪方形头像并将它们放置在使用 Pillow 创建的空白图像的中心。
如何将这些图像围绕中心图像以圆形方式放置?
如有任何帮助,我将不胜感激。我是图像处理的初学者。
示例图片
我使用 Pillow 能够实现的目标:
计算位置需要相当基础的数学(圆的数学公式)。
如果你有一个半径为 R
的圆,你必须输入角度 angle
x = R * cos(angle) + center_x
y = R * sin(angle) + center_y
Top
有角度 0
,bottom
有角度 180
,left
/right
有角度 90
/ 270
(或270
/90
)。
你必须记住 Python 在 math.sin()
中使用 radians
而不是 degrees
,math.cos()
所以你需要 math.sin(math.radians(180))
来计算180 degrees
.
如果你想把 8
图像放在圆上,那么你需要角度 360 / 8
,它给出 45
所以第一张图像可以在角度 45 * 1
上,第二张图像可以在 45 * 2
,等等
如果你想偏移 5
度然后 (45 * 1) + 5
,第二个 (45 * 2) + 5
,等等
我不确定图片的大小。圆有电路
circuit = 2 * PI * R
所以对于 8
图片,每个图片都应该使用 diagonal
小于
diagonal = circuit / 8
给出半径
radius = diagonal / 2
要创建此圈子,您需要带有
的图像 width = diagonal
height = diagonal
如果电路上有 8 张图像,则图像之间有 7 个间隙。
如果您想要大小为 5 像素的间隙,那么您可能需要
gap = 5
diagonal = (circuit - 7*gap) / 8