1、打开图像文件
from PIL import Image
catIm=Image.open('zophie.png')
2、裁剪图片 crop()函数
croppedIm=catIm.crop((335,345,565,560))
croppedIm.save('cropped.png')
3、复制粘贴图像
catIm=Image.open('zophie.png')
catCopyIm=catIm.copy()
faceIm=catIm.crop((335,345,565,560))
catCopyIm.paste(faceIm,(0,0))
catCopyIm.paste(faceIm,(400,500))
catCopyIm.save('pasted.png')
4、调整图像大小 resize()函数
width,height=catIm.size
quartersizedIm=catIm.resize((int(width/2),int(height/2)))
quartersizedIm.save('quartersized.png')
svelteIm=catIm.resize((width,height+300))
svelteIm.save('svelte.png')
5、旋转和翻转图像 rotate()函数
catIm.rotate(90).save('rotated90.png')
catIm.rotate(180).save('rotated180.png')
expand参数:是否放大尺寸
catIm.rotate(6,expand=True).save('rotated6_expanded.png')
镜像倒转 transpose()函数
catIm.transpose(Image.FLIP_LEFT_RIGHT).save('horizontal_flip.png') #水平翻转
catIm.transpose(Image.FLIP_TOP_BOTTOM).save('horizontal_flip.png') #垂直翻转
6、更改单个像素
getpixel():得到单个像素颜色
putpixel():单个像素添加颜色
代码如下:
im=Image.new('RGBA',(100,100))
im.getpixel((0,0))
for x in range(100):
for y in range(50):
im.putpixel((x,y),(210,210,210))
from PIL import ImageColor
for x in range(100):
for y in range(50,100):
im.putpixel((x,y),ImageColor.getcolor('darkgray','RGBA'))
im.getpixel((0,0))
im.getpixel((0,50))
7、图像上画形状 ImageDraw.Draw(im)
点:point(xy,fill) xy是元组,fill是点的颜色
线:line(xy,fill,width) xy是元组,fill是线的颜色,width是线的宽度
矩形:rectangle(xy,fill,outline) xy是元组(left,top,right,bottom,其中left、top是左上角的x坐 标、y坐标;right、bottom是右下角的x坐标、y坐标),fill是填充的颜色,outline是矩形轮廓的颜色
椭圆:ellipse(xy,fill,outline) xy是元组(left,top,right,bottom),fill是填充的颜色,outline是轮廓的颜色
多边形:polygon(xy,fill,outline) xy是元组,fill是填充的颜色,outline是轮廓的颜色
代码如下:
from PIL from Image,ImageDraw
im=Image.new('RGBA',(200,200),'white')
draw=ImageDraw.Draw(im)
draw.line([(0,0),(199,0),(199,199),(0,199),(0,0)],fill='black')
draw.rectangle((20,30,60,60),fill='blue')
draw.ellipse((120,30,160,60),fill='red')
draw.polygon(((57,87),(79,62),(94,85),(120,90),(103,113)),fill=brown')
im.save('drawing.png')
8、绘制文本 text()
代码如下:
from PIL import Image,ImageDraw,ImageFront
import os
im=Image.new('RGBA',(200,200),'white')
draw=ImageDraw.Draw(im)
draw.text((20,150),'hello',fill='purple')
fontsFolder='FONT_FOLDER'
arialFont=ImageFont.truetype(os.path.join(fontsFolder,'arial.ttf'),32)
draw.text((100,150),'Howdy',fill='gray',font=arialFont)
im.save('text.png')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)