【发布时间】:2021-12-27 10:15:12
【问题描述】:
我需要制作一个程序,将图像逆时针旋转四分之一圈,而不使用 python 中的旋转函数。 我认为我的程序应该可以工作,图像已创建,但只有黑色图像。 我的代码:
im = Image.open("smiley.bmp")
im.show()
largeur, hauteur= im.size
px = im.load()
def rotation(image):
largeur, hauteur= image.size
new = im.copy()
if largeur >1:
moitie = largeur//2
a = im.crop((0, 0, moitie, moitie)) # en haut à gauche
b = im.crop((moitie,0,hauteur,moitie))# en haut à droite
c = im.crop((moitie,moitie,hauteur,hauteur)) # en bas à droite
d= im.crop((0,moitie,moitie,hauteur))# en bas à gauche
#récursif
rotation(a)
rotation(b)
rotation(c)
rotation(d)
new.paste(d,(0,0)) #d à la place de a
new.paste(a,(moitie,0)) #a à la place de b
new.paste(b,(moitie,moitie))
new.paste(c,(0,moitie))
new.save("smiley1.png")
图像将是一个正方形。
我使用pycharm并replit python。
【问题讨论】:
-
请向我们展示您收到的完整错误信息,包括回溯。 “有些东西阻止了它”不是有用的调试信息。
-
@Kemp,该错误在python上是不可见的,只是创建了图像但没有什么只是黑色图像。
-
那么这就是我们需要的重要信息。您没有在原始帖子中提及实际问题。
-
@Kemp 哦,对不起,我不知道问题出在哪里,这就是原因。
-
我要说的一件事是,您的裁剪将巧合地适用于方形图像,但对于其他任何东西都是完全错误的。此外,您递归调用该函数,但从不返回任何内容或修改输入参数。您只需一遍又一遍地保存输出文件(包括一旦您降低到单个像素,您只需将该像素保存为整个图像)。
标签: python rotation python-imaging-library