Python之图像处理
------------恢复内容开始------------
getrgb()
from PIL import ImageColor #getrgb 将颜色符号或字符串转化为元组 print(ImageColor.getrgb('#0000ff')) # (0,0,255) print(ImageColor.getrgb('Blue') # (0,0,255)
getcolor()
from PIL import ImageColor #getcolor 将颜色符号或字符串转化为元组 print(ImageColor.getcolor('#0000ff', 'RGB')) # (0,0,255) print(ImageColor.getcolor('#0000ff', 'RGBA')) # (0,0,255,255)
Image模块的方法:open(),save(),resize(),rotate(),transpose(),getpixel(),putpixel(),crop(),copy(),paste()
Image模块的属性:size,filename,format,
from PIL import Image # 打开一个图像对象 pic = Image.open('picture/图1.jpg') # size属性获得图像宽和高 w, h = pic.size # filename属性获得图像对象的文件名 print(pic.filename) # picture/图1.jpg # format属性获得图像对象的文件格式 print(pic.format) # JPEG # save()方法存储文件,可以存储为不同格式的文件,如JPG-->PNG pic.save('img001.png') # new(mode, size, color)建立新的文件对象 img = Image.new('RGB', (200, 250), 'green') # resize()更改图像大小 img1 = img.resize((300, 300)) # rotate()方法可以逆时针旋转图像,expand=True可以使图像旋转后全部显示 pic.rotate(90).save('img01.png') pic.rotate(90, expand=True).save('img02.png') # transpose()方法可以使图像翻转,transpose(Image.FLIP_LEFT_RIGHT)是图像左右翻转,transpose(Image.FLIP_TOP_BOTTLE)使图像上下翻转 pic.transpose(Image.FLIP_LEFT_RIGHT).save('img03.png') pic.transpose(Image.FLIP_TOP_BOTTOM).save('img04.png') # getpixel()方法可以得到图像某一位置像素的色彩 print(pic.getpixel((100, 100))) # (203, 203, 203) # putpixel()方法可以在某一位置置入色彩 for x in range(100): for y in range(100): img.putpixel((x, y), ImageColor.getrgb('yellow')) img.save('img002.png') # crop()方法可以裁切图像 pic1 = pic.crop((0,0,100,100)) pic1.save('img05.png') # copy()方法可以复制图像 pic2 = pic.copy() pic2.save('img06.png') # paste()方法可以合成图像 img.paste(pic1, (0, 100)) img.save('img003.png')
ImageDraw模块的方法:Draw(),point(),line(),ellipse(),rectangle(),polygon(),text()
# ImageDraw模块可以在图像内绘制图案 from PIL import ImageDraw # 绘制图案首先在建立图像 newimg = Image.new('RGB',(300,300),'yellow') # 然后在图像内建立图案对象 dw = ImageDraw.Draw(newimg) # point()方法可以在图像内绘制点 for x in range(100): for y in range(100,250): dw.point([(x,y)],fill='black') # line()方法可以在图像内绘制线条 dw.line([(0,0),(100,100),(150,100)],fill='black') # ellipse((left,top,right,bottle))方法可以在图像内绘制椭圆,坐标是包住椭圆的左上角与右下角 dw.ellipse((200,200,300,300),fill='red') # rectangle()方法可以在图像内绘制矩形,坐标是矩形的左上角与右下角 dw.rectangle((0,100,300,200),fill='red') # polygon()方法可以在图像内绘制多边形 dw.polygon([(0,200),(300,200),(300,250),(0,200)],outline='black') # text((x,x),内容,fill,font)方法可以在图像内填写英文或中文 dw.text((0, 200), 'welcome to ...', fill='blue') newimg.save('img07.png')
------------恢复内容结束------------