Pillow库画图用法记录python

1、关于pillow和matplotlib

Pillow库和Matplotlib库都是Python中常用的图像处理库,但它们的主要用途和功能是不同的。

Pillow库是一个专门用于创建、打开和操作图像的库。它支持多种图像格式,可以用于图像的缩放、旋转、裁剪、滤镜处理、写入文本等操作。通过Pillow,用户可以轻松地处理和操作各种图像格式,包括PNG、JPEG、BMP、TIFF等等。如果您需要对图像进行处理,或者要在Python程序中生成一些图像,那么Pillow是一个非常好用的库。

Matplotlib库则是一个支持数据可视化的库,它提供了丰富的绘图功能,可以用于绘制各种类型的图形,包括散点图、折线图、柱状图、等高线图等等。Matplotlib提供了多种绘图接口,包括命令式pyplot接口、面向对象的API接口、图形用户界面等,使得用户可以用较少的代码实现各种图表的绘制。

因此,如果您需要进行图像处理,那么可以选择Pillow;如果您需要进行数据可视化,那么可以选择Matplotlib。当然,如果您需要在图像处理和数据可视化之间切换,那么您也可以同时使用两个库。

总而言之,Pillow和Matplotlib这两个库在python中画图是很实用的两个库,但各有侧重,matplotlib库对于画图功能更加强大,pillow库可用于画图,但更侧重图像处理。

2、pillow库画图用法

最近用pillow库创建图像,画线、多边形和坐标系,暂记相关功能,后面逐步丰富。

from PIL import Image, ImageDraw, ImageFont

# 创建一个新图像
image = Image.new("RGB", (500, 500), "white")
draw = ImageDraw.Draw(image)

# 设置字体样式和大小
font = ImageFont.truetype("arial.ttf", 24)

# 画一个三角形
draw.polygon([(100, 100), (200, 300), (400, 200)], fill="red", outline="black")

# 画一条直线
draw.line([(100, 200), (400, 200)], fill="black", width=2)

# 画一个带有文本的矩形框
draw.rectangle([(100, 100), (400, 200)], fill="white", outline="black")
draw.text((150, 150), "Hello, Pillow!", font=font, fill="black")

# 展示图像
image.show()

# 保存图像
image.save()

①设置字体和字号,字体可以自行下载

font = ImageFont.truetype("arial.ttf", 24)

②画线或面,里面可以加起始点坐标,线的颜色,宽度,坐标是像素坐标,图片左上角是原点

draw.line([(100, 200), (400, 200)], fill="black", width=2)
draw.polygon([(100, 100), (200, 300), (400, 200)], fill="red", outline="black")
draw.rectangle([(100, 100), (400, 200)], fill="white", outline="black")

③加文本,文本字体,颜色,添加位置 等可设置,坐标信息是文本内容左上角起点

draw.text((150, 150), "Hello, Pillow!", font=font, fill="black")

④保存图像,可添加dpi保证图片的分辨率

image.save('xxx.jpeg',dpi=(200,200))

相关推荐

  1. Pillow画图用法记录python

    2023-12-27 08:54:02       54 阅读
  2. pythonpillow (PIL)用法介绍

    2023-12-27 08:54:02       54 阅读
  3. Python Pillow(PIL)用法介绍

    2023-12-27 08:54:02       64 阅读
  4. Pythonpillow (PIL)用法介绍

    2023-12-27 08:54:02       55 阅读
  5. Python Pillow (PIL) 简介

    2023-12-27 08:54:02       59 阅读
  6. Python】关于PythonPillow

    2023-12-27 08:54:02       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-27 08:54:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-27 08:54:02       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-27 08:54:02       82 阅读
  4. Python语言-面向对象

    2023-12-27 08:54:02       91 阅读

热门阅读

  1. LeetCode453. Minimum Moves to Equal Array Elements

    2023-12-27 08:54:02       50 阅读
  2. C语言中的结构体和联合体:异同及应用

    2023-12-27 08:54:02       60 阅读
  3. Go语言入门:Go程序的基础结构

    2023-12-27 08:54:02       50 阅读
  4. C++入门【16-C++ 从函数返回数组】

    2023-12-27 08:54:02       62 阅读
  5. Ansible的变量

    2023-12-27 08:54:02       50 阅读
  6. 【EasyExcel】使用技巧

    2023-12-27 08:54:02       53 阅读
  7. Mybatis-Plus基础之Mapper的映射规则

    2023-12-27 08:54:02       42 阅读
  8. C++设计模式:单例模式(饿汉式、懒汉式)

    2023-12-27 08:54:02       61 阅读
  9. 【数据库】postgressql设置数据库执行超时时间

    2023-12-27 08:54:02       62 阅读
  10. 黑客常用端口利用总结

    2023-12-27 08:54:02       42 阅读
  11. python之列表动态生成和重复数据处理

    2023-12-27 08:54:02       60 阅读
  12. VSCode 加Cortex-Debug嵌入式调试方法

    2023-12-27 08:54:02       54 阅读