当前位置: 首页 > wzjs >正文

上海建设工程安全质量监督站网站河南网站推广多少钱

上海建设工程安全质量监督站网站,河南网站推广多少钱,网易企业邮箱怎么撤回已发送邮件,找小程序Pillow 是 Python 中最流行的图像处理库之一,它是经典库 PIL(Python Imaging Library)的维护分支(Fork),兼容 Python 3 并修复了许多原生 PIL 的缺陷。它提供了丰富的图像处理功能,适合基础的图…

Pillow 是 Python 中最流行的图像处理库之一,它是经典库 PIL(Python Imaging Library)的维护分支(Fork),兼容 Python 3 并修复了许多原生 PIL 的缺陷。它提供了丰富的图像处理功能,适合基础的图像操作和简单的图像合成任务。
pillow库是一个phthon中比较基础的图像处理库,官方文档

通过下面的方法进行安装

pip install pillow

Image对象

from PIL import Image
# 导入图片
im = Image.open(fp)
# 显示图片
im.show()

1. 创建图片

# 创建图片
im = Image.open(mode, size, color)
im.show()
mode描述
11 位像素(取值范围 0-1),0表示黑,1 表示白,单色通道。
L8 位像素(取值范围 0 -255),灰度图,单色通道。
P8 位像素,使用调色板映射到任何其他模式,单色通道。
RGB3 x 8位像素,真彩色,三色通道,每个通道的取值范围 0-255。
RGBA4 x 8位像素,真彩色+透明通道,四色通道。
CMYK4 x 8位像素,四色通道,可以适应于打印图片。
YCbCr3 x 8位像素,彩色视频格式,三色通道。
LAB3 x 8位像素,L * a * b颜色空间,三色通道
HSV3 x 8位像素,色相,饱和度,值颜色空间,三色通道。
I32 位有符号整数像素,单色通道。
F32 位浮点像素,单色通道。

2.对象属性

import PIL.Image
im = PIL.Image.open(file)
print(im.size)       # 查看图片大小
print(im.readonly)   # 查看是否为只读,1为是,0为否
print(im.format)     # 查看图片格式
print(im.info)       # 查看图片信息
print(im.mode)       # 查看图片模式

3.格式转换

im = PIL.Image.open(file)
im.save(fp, format=None)im.convert(mode, params) # 格式转换
im.save(fp)

4.图片缩放

im_new = im.resize(size, resample=image.BICUBIC, box=None, reducing_gap=None)  # 注意要重新赋值
im_new.show()  # 缩放后的图片

5. 创建缩略图

im = Image.open("C:\\study\\testPic\\demoPic.png")
im.thumbnail((100,100))
im.save("C:\\study\\testPic\\demoPica.png")im.thumbnail(size,resample)  # 直接在原图的基础上修改

size:是一个元祖参数,缩小后的图片尺寸

resample:可选参数,指图像重采样滤波器,有四种过滤方式,分别是 Image.BICUBIC(双立方插值法)、PIL.Image.NEAREST(最近邻插值法)、PIL.Image.BILINEAR(双线性插值法)、PIL.Image.LANCZOS(下采样过滤插值法),默认为 Image.BICUBIC

6.图像分离与合并

图片分离

im = Image.open("C:\\study\\testPic\\demoPic.png")
# 图片模式
print(im.mode)
r, g, b, a = im.split()

图片合并

im_merge = Image.merge("RGB", (r,g,b))
im_merge.save("C:\\study\\testPic\\demoPicMerge.png")

blend() 方法来混合 RGBA 模式的图片(PNG 格式)

# 图片混合,alpha:透明度 ,取值范围为 0 到 1。要求图片的模式相同,尺寸相同
Image.blend(image1,image2, alpha)ima = Image.open("C:\\study\\testPic\\a.png")
ima = ima.convert('RGBA')
ima = ima.resize((512, 512))imb = Image.open("C:\\study\\testPic\\b.png")
imb = imb.convert('RGBA')
imb = imb.resize((512, 512))imBlend = Image.blend(ima, imb, 0.5)
imBlend.save("C:\\study\\testPic\\blend.png")

7.图片裁剪

im = Image.open("C:\\study\\testPic\\a.png")
box = (100,100,300,300)
# 进行矩形区域裁剪
region = im.crop(box)

8.图片旋转

im = Image.open("C:\\study\\testPic\\a.png")
im = im.transpose(Image.ROTATE_180)

9.拷贝粘贴

im = Image.open("C:\\study\\testPic\\a.png")
# 复制一张图片副本
im_copy = im.copy()
# 对副本进行裁剪
im_crop = im_copy.crop((0, 0, 200, 100))
# 创建一个新的图像作为蒙版,L模式,单颜色值
image_new = Image.new('L', (200, 100), 200)
# 将裁剪后的副本粘贴至副本图像上,并添加蒙版
im_copy.paste(im_crop, (100, 100, 300, 200), mask=image_new)
# 显示粘贴后的图像
im_copy.show()

ImageFilter

滤波器能够有效抑制噪声的产生,并且不影响被处理图像的形状、大小以及原有的拓扑结构

from PIL import Image, ImageFilterim = Image.open("C:\\study\\testPic\\a.png")
im_ft = im.filter(ImageFilter.EMBOSS)  # 添加浮雕滤波器
im_ft.show()
ImageFilter.BLUR模糊滤波,即均值滤波
ImageFilter.CONTOUR轮廓滤波,寻找图像轮廓信息
ImageFilter.DETAIL细节滤波,使得图像显示更加精细
ImageFilter.FIND_EDGES寻找边界滤波(找寻图像的边界信息)
ImageFilter.EMBOSS浮雕滤波,以浮雕图的形式显示图像
ImageFilter.EDGE_ENHANCE边界增强滤波
ImageFilter.EDGE_ENHANCE_MORE深度边缘增强滤波
ImageFilter.SMOOTH平滑滤波
ImageFilter.SMOOTH_MORE深度平滑滤波
ImageFilter.SHARPEN锐化滤波
ImageFilter.GaussianBlur()高斯模糊
ImageFilter.UnsharpMask()反锐化掩码滤波
ImageFilter.Kernel()卷积核滤波
ImageFilter.MinFilter(size)最小值滤波器,从 size 参数指定的区域中选择最小像素值,然后将其存储至输出图像中。
ImageFilter.MedianFilter(size)中值滤波器,从 size 参数指定的区域中选择中值像素值,然后将其存储至输出图像中。
ImageFilter.MaxFilter(size)最大值滤波器
ImageFilter.ModeFilter()模式滤波

ImageColor

颜色处理模块 ImageColor,该模块支持不同格式的颜色,比如 RGB 格式的颜色三元组、十六进制的颜色名称(#ff0000)以及颜色英文单词(“red”)。同时,它还可以将 CSS(层叠样式表,用来修饰网页)风格的颜色转换为 RGB 格式

from PIL import Image, ImageColorim = Image.new(mode="RGB", size=(100, 100), color=ImageColor.getrgb('HSL(0,100%,50%)'))
im.show()im = Image.new(mode="RGB", size=(100, 100), color=ImageColor.getcolor('#aaffbb', 'RGBA'))
im.show()

ImageFont

加载字体文件并设置文本样式,支持TrueType(.ttf)、OpenType(.otf)及系统内置字体:

加载字体

from PIL import ImageFont# 加载TrueType字体,指定大小
font = ImageFont.truetype("arial.ttf", size=24)  # 自定义字体文件
font_system = ImageFont.load_default()          # 系统默认字体

设置字体属性,支持设置字体大小、粗体/斜体(需字体文件本身支持):

font = ImageFont.truetype("arial_bold.ttf", size=20)  # 加载粗体字体

ImageDraw

图像绘制模块,在图像上绘制文本、几何图形和像素点

Pillow库的ImageFont和ImageDraw模块能力介绍
Pillow(PIL Fork)是Python中广泛使用的图像处理库,ImageFontImageDraw是其核心的文字与图形绘制模块,常用于添加水印、验证码生成、图表标注等场景。以下是两者核心能力的详细说明:


1. ImageFont模块(字体管理)

核心功能: 加载字体文件并设置文本样式

  • 加载字体文件
    支持TrueType(.ttf)、OpenType(.otf)及系统内置字体:

    from PIL import ImageFont# 加载TrueType字体,指定大小
    font = ImageFont.truetype("arial.ttf", size=24)  # 自定义字体文件
    font_system = ImageFont.load_default()          # 系统默认字体
    
  • 字体属性设置
    支持设置字体大小、粗体/斜体(需字体文件本身支持):

    font = ImageFont.truetype("arial_bold.ttf", size=20)  # 加载粗体字体
    

2. ImageDraw模块(图像绘制)

核心功能: 在图像上绘制文本、几何图形和像素点

(1) 文本绘制
from PIL import Image, ImageDraw, ImageFont# 创建画布
img = Image.new("RGB", (400, 200), color="white")
draw = ImageDraw.Draw(img)# 定义字体
font = ImageFont.truetype("arial.ttf", 24)# 绘制文本(位置、内容、颜色、字体、对齐方式)
draw.text(xy=(50, 50),           # 起始坐标(左上角)text="Hello Pillow!",fill="red",            # 颜色支持名称/RGB元组font=font,           anchor="lt"            # 对齐方式(左对齐)
)
(2) 几何图形绘制
  • 线条

    draw.line(xy=[(10,10), (100,100)], fill="blue", width=2)
    
  • 矩形

    draw.rectangle(xy=[(50,50), (150,150)], outline="green", fill="yellow", width=3)
    
  • 多边形/椭圆/弧线

    draw.polygon(xy=[(200,100), (250,150), (300,50)], fill="purple")
    draw.ellipse(xy=[(300,20), (380,80)], fill="orange")
    draw.arc(xy=[(200,100), (300,200)], start=45, end=180, fill="black", width=2)
    
(3) 像素点与高级功能
  • 绘制单个像素点

    draw.point((50,60), fill="red")
    
  • 抗锯齿支持(需使用ImageDraw.ImageDraw.antialias):

    draw.line(..., joint="curve")  # 曲线平滑
    

示例代码整合

from PIL import Image, ImageDraw, ImageFont# 创建图像与Draw对象
img = Image.new("RGB", (400, 300), "white")
draw = ImageDraw.Draw(img)# 使用自定义字体
font = ImageFont.truetype("arial.ttf", 30)# 绘制多个元素
draw.rectangle([(20,20), (380,280)], outline="gray")
draw.text((100,150), "Python Pillow", fill="#336699", font=font)
draw.ellipse([(150,80), (250,180)], outline="red", width=2)# 保存结果
img.save("output.png")

生成的图片

http://www.dtcms.com/wzjs/332944.html

相关文章:

  • 做网站链接的页面怎么做b站入口2024已更新
  • 做律师推广的网站有哪些seo排名谁教的好
  • 怎么做商品购买网站seo关键词外包
  • 网站建设微信公众号文章百度网页版主页
  • wordpress主题自定义模块西安网站seo哪家公司好
  • 如何做网站推今天宣布疫情最新消息
  • 福州培训网站建设seo快速排名软件方案
  • 手机回收网站开发网络广告策划书案例
  • 有了公网ip如何做网站怎样做推广
  • 上海市城乡住房建设部网站万物识别扫一扫
  • 福州企业做网站创意设计
  • 做bc网站网站定制开发
  • 音乐网站后台管理模板班级优化大师头像
  • 外贸自建站类型郑州网络推广
  • 建设网站西丽成都网站快速排名优化
  • 个人响应式网站seo排名公司
  • 自己制作一个网站需要多少钱做百度推广怎么做才能有电话
  • 做网站需要资质吗关键词排名顾问
  • 专做民宿的网站百度搜索引擎下载
  • 南宁网站设计多少钱郑州百度推广托管
  • 莱芜公交网站公司想建个网站怎么弄
  • 网站专题活动策划方案seo页面内容优化
  • 广州奕联网站开发百度小程序优化排名
  • wordpress子域名seo渠道是什么意思
  • 做暧暖免费观看网站软文网站推广
  • 珠海专业网站建设公司哪家好seo的中文含义是
  • 重庆智能网站建设多少钱必应搜索引擎国际版
  • 中山营销型网站建设苏州seo优化
  • 杭州企业云网站建设新闻发布平台有哪些
  • 湘潭网站建设选择湘潭振企网站建设手机网站搜索优化