您的位置:首页 > 其它

操作图像4-pillow-旋转,翻转图像、更改单个元素

2016-11-26 02:20 441 查看

1旋转、翻转图像

图像可以用rotate()方法旋转,该方法返回旋转后的新Image对象,并保持原始Image对象不变。rotate()的参数是一个整数或浮点数,

表示图像逆时针旋转的度数。







from PIL import Image

'''打开图像'''
catCopyIm = Image.open(r'D:\image\image.jpg')

'''逆时针旋转90度的新Image图像'''
catCopyIm.rotate(90).save('rotate90.png')

'''逆时针旋转180度的新Image图像'''
catCopyIm.rotate(180).save('rotate180.png')

'''逆时针旋转270度的新Image图像'''
catCopyIm.rotate(270).save('rotate270.png')


注意,当图像旋转90或270度时,宽度和高度会变化。如果旋转其他角度,图像 的原始尺寸会保持; windows上,

使用黑色的背景来填补旋转造成的缝隙





rotate()方法有一个可选的expand关键字参数,如果设为True,就会放大图像的尺寸,以适应整个旋转后的新图像

'''旋转6度'''
catCopyIm.rotate(6).save('roteat6.png')

'''expand设置为True'''
catCopyIm.rotate(6, expand=True).save('roteat6_expand.png')


transpose()方法,得到图像的”镜像翻转” 必须传入Image.FLIP_LEFT_RIGHT

或Image.FLIP_TOP_BOTTOM。





'''水平翻转'''
catCopyIm.transpose(Image.FLIP_LEFT_RIGHT).save('horizontal_flip.png')

'''垂直翻转'''
catCopyIm.transpose(Image.FLIP_TOP_BOTTOM).save('vertrical_flip.png')


以上demo:

from PIL import Image

'''打开图像'''
catCopyIm = Image.open(r'D:\image\image.jpg')

'''逆时针旋转90度的新Image图像'''
catCopyIm.rotate(90).save('rotate90.png')

'''逆时针旋转180度的新Image图像'''
catCopyIm.rotate(180).save('rotate180.png')

'''逆时针旋转270度的新Image图像'''
catCopyIm.rotate(270).save('rotate270.png')

'''旋转6度''' catCopyIm.rotate(6).save('roteat6.png') '''expand设置为True''' catCopyIm.rotate(6, expand=True).save('roteat6_expand.png')

'''水平翻转''' catCopyIm.transpose(Image.FLIP_LEFT_RIGHT).save('horizontal_flip.png') '''垂直翻转''' catCopyIm.transpose(Image.FLIP_TOP_BOTTOM).save('vertrical_flip.png')


2 更改单个像素

单个像素的颜色可以通过getpixe()和putpixel()方法取得和设置。

它们都接受一个元组,表示像素的X和Y坐标。putpixel()方法还接受一个元组

作为该像素的颜色,这个颜色参数是四个整数RGBA元组或三整数RGB元组。



from PIL import Image
from PIL import ImageColor
'''200×200的透明正方形'''
im = Image.new('RGBA', (200, 200))

'''坐标调用'''
print(im.getpixel((0, 0)))

'''遍历上半部份的所有像素'''
for x in range(200):
for y in range(100):
'''设置每个像素的颜色'''
im.putpixel((x, y), (255,255,255))

for x in range(200):
for y in range(100,200):
'''假定不知道RGB元组,必须使用ImageColor.getcolor()'''
im.putpixel((x, y), ImageColor.getcolor('darkgray', 'RGBA'))

print(im.getpixel((0, 0)))
'''调用坐标'''
print(im.getpixel((0,100)))
'''保存图像'''
im.save('putpixel.png')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  rotate
相关文章推荐