基本上,我试图通过用户界面旋转图像,但我注意到图像质量在每次旋转时都会严重下降。有谁知道如何解决这个问题?此外,当图像旋转时,它每次都会裁剪部分图像。
这里有一些图片 之前和之后: http://imgur.com/a/QESKs
代码如下:
def onRotate(self):
tanTheta = float(hh)/float(ww)
theta = math.atan(tanTheta) * 57.2957795 # convert to degrees
if theta > 0:
angle = (90 - theta) * -1
clockwise = True
elif theta < 0:
angle = (270 - theta) * -1
clockwise = False
else:
tkMessageBox('Angle not okay', 'Try again!')
rotated_small = photo_small.rotate(angle)
rotated_small.save('small_rotate.jpg')
self.load_imgfile('small_rotate.jpg')
最佳答案
rotated_small = photo_small.rotate(angle, resample=Image.BICUBIC, expand=True)
这告诉它使用可用的最高质量插值算法,并扩展图像以包含完整的旋转尺寸而不是裁剪。文档没有说明背景将填充什么颜色。
关于python - 使用 PIL 旋转时如何保持图像质量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17821945/