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')

------------恢复内容结束------------

原文地址:https://www.cnblogs.com/mango1997/p/13716713.html