图片就是一种文件,一堆信息的载体,一种数据
常见的模型包括
安装结束后,从PIL库中导入ImageColor
pip install pillow
导入操作
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from PIL import ImageColor
查看颜色RGB值
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from PIL import ImageColor
print(ImageColor.getcolor('red', 'RGB')) # 红色RGB值
print(ImageColor.getcolor('red', 'RGBA')) # 透明度
>>>
(255, 0, 0)
(255, 0, 0, 255)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
from PIL import ImageColor
from PIL import Image # 导入Image
os.chdir(r"F:\Python_yanzan2018\YanKai_Python_Advanced\YanKai_image\core") # 进入图像的目录
IM = Image.open('timg.jpeg') # 使用Image.open 方法打开当前目录的图像赋值---->IM 对象
print(f"图片的格式为:{IM.format},图片的尺寸为:{IM.size},图片的模式:{IM.mode}") # 获取图像相关信息
>>>图片的格式为:JPEG,图片的尺寸为:(793, 726),图片的模式:RGB
获得图像尺寸
IM = Image.open('timg.jpeg') # 使用Image.open 方法打开当前目录的图像赋值---->IM 对象
A, B = IM.size
print(A, B)
>>>
>793 726
将此图像缩放到50%如下:
缩放50% 也就是793/2-----726/2
IM = Image.open('timg.jpeg') # 使用Image.open 方法打开当前目录的图像赋值---->IM 对象
A, B = IM.size
print(f"这是没有缩略前的图片尺寸:{A}x{B}")
IM.thumbnail((A//2, B//2))
print(f"这是缩略后图片的尺寸{A//2}x{B//2}")
IM.save('timg.jpg', 'jpeg')
>>>
这是没有缩略前的图片尺寸:793x726
这是缩略后图片的尺寸396x363
打开验证
缩略后的图片尺寸
缩略前图像尺寸
使用.show()
方法在本地打开图片
IM.show() # 显示图片
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
from PIL import ImageColor
from PIL import Image # 导入Image
os.chdir(r"F:\Python_yanzan2018\YanKai_Python_Advanced\YanKai_image\core") # 进入图像的目录
IM = Image.open('timg.jpeg') # 使用Image.open 方法打开当前目录的图像赋值---->IM 对象
# print(f"图片的格式为:{IM.format},图片的尺寸为:{IM.size},图片的模式:{IM.mode}") # 获取图像相关信息
IM = Image.open('timg.jpeg') # 使用Image.open 方法打开当前目录的图像赋值---->IM 对象
A, B = IM.size
print(f"这是没有缩略前的图片尺寸:{A}x{B}")
IM.thumbnail((A//2, B//2))
print(f"这是缩略后图片的尺寸{A//2}x{B//2}")
IM.save('timg2.jpeg', 'jpeg')
IM_size = IM.resize((A//4, B//4)) # 调整大小
IM_size.save('timg3.jpeg', 'jpeg')
将图像变高
将图像变高方法:高//3 宽//4 即可 如果还要更高则 高不变 宽//2 如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
from PIL import ImageColor
from PIL import Image # 导入Image
os.chdir(r"F:\Python_yanzan2018\YanKai_Python_Advanced\YanKai_image\core") # 进入图像的目录
IM = Image.open('timg.jpeg') # 使用Image.open 方法打开当前目录的图像赋值---->IM 对象
# print(f"图片的格式为:{IM.format},图片的尺寸为:{IM.size},图片的模式:{IM.mode}") # 获取图像相关信息
IM = Image.open('timg.jpeg') # 使用Image.open 方法打开当前目录的图像赋值---->IM 对象
A, B = IM.size
IM_size = IM.resize((A//4, B)) # 调整大小 宽/高
IM_size.save('timg6.jpeg', 'jpeg')
如何变宽???
如何增强效果?
使用ImageEnhance
增强图像效果
左侧为:增强前, 右侧为:增强后
代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
from PIL import ImageColor
from PIL import Image
from PIL import ImageEnhance
os.chdir(r"F:\Python_yanzan2018\YanKai_Python_Advanced\YanKai_image\core") # 进入图像的目录
IM = Image.open('timg.jpeg') # 使用Image.open 方法打开当前目录的图像赋值---->IM 对象
# print(f"图片的格式为:{IM.format},图片的尺寸为:{IM.size},图片的模式:{IM.mode}") # 获取图像相关信息
IM = Image.open('timg.jpeg') # 使用Image.open 方法打开当前目录的图像赋值---->IM 对象
A, B = IM.size
enh = ImageEnhance.Contrast(IM)
enh.enhance(1.8).show("30% 增强对比度")
IM.save('timg9.jpeg', 'jpeg')
裁剪图像
box = (100, 100, 400, 400)
region = IM.crop(box)
region.save('timg15.jpeg')
IM.rotate(90).save("90度旋转.jpg")
IM.rotate(180).save("180度旋转.jpg")
IM.rotate(40).save("40度旋转.jpg")
IM.transpose(Image.FLIP_LEFT_RIGHT).save("cat-水平.jpg")
IM.transpose(Image.FLIP_TOP_BOTTOM).save("cat-上下.jpg")
# 打开logo文件
log_image = Image.open('tj.jpeg')
log_image_w, log_image_h = log_image.size
# 打开目标文件
ret_image = Image.open('cat1.jpeg')
ret_image_w, ret_image_h = ret_image.size
# 粘贴:
image_copy = ret_image.copy()
image_copy.paste(log_image, (ret_image_w-log_image_w, ret_image_h-log_image_h))
image_copy.save('cat_logo.jpg')
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
from PIL import ImageColor
from PIL import Image
from PIL import ImageEnhance
from PIL import ImageDraw, ImageFont
IM_new = Image.new('RGBA', (500, 500), 'white') # 创建模式为:RGBA,500x500尺寸,white 背景
pic = ImageDraw.Draw(IM_new) # 通过ImageDraw.Draw 创建图像
pic.text((100, 100), 'Yankerp Is ok!', fill='red') # 在100x100位置输入Yankerp is ok 字体,颜色为red
IM_new.save('image_text.png') # 保存为新的图片
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
from PIL import ImageColor
from PIL import Image
from PIL import ImageEnhance
from PIL import ImageDraw, ImageFont
fonts_file = r'C:\Windows\Fonts\simhei.ttf' # 定义windows字体位置
font = ImageFont.truetype(fonts_file, 30) # 选择字体类型以及字体大小
IM_new = Image.new('RGBA', (500, 500), 'white') # 创建RGBA 定义白色背景
pic = ImageDraw.Draw(IM_new) # 创建图像
pic.text((100, 100), 'Yankerp Is ok!', fill='red', font=font) # 写入Yankerp is ok 红色字体 字体选择font
IM_new.save('font_image.png') # 保存新的图片