python中图片绘制和输出相关库的原理详解

Python在图片绘制和输出方面的发展历史可以追溯到20世纪90年代,当时的主要库是Python Imaging Library (PIL),用于处理图像文件和生成图像。PIL是Python中最早的图像处理库之一,支持多种图像格式和颜色空间的处理。

随着Python在数据科学和机器学习领域的发展,出现了一些用于数据可视化和图像处理的新库,其中包括Matplotlib、Seaborn、Bokeh、OpenCV等。这些库具有更高级别的界面和更多的绘图选项,使得数据可视化更加容易和美观。Matplotlib是Python中最流行的绘图库之一,它提供了多种绘图类型和许多定制化选项。Seaborn则是基于Matplotlib的高级可视化库,提供了更多的图形绘制选项和美观的颜色主题。

在图像处理方面,OpenCV是一个开源计算机视觉库,提供了许多算法和工具用于图像和视频处理。它支持多种编程语言,包括Python,使得它在机器学习和计算机视觉领域得到了广泛的应用。

除了上述库之外,还有一些用于特定目的的图像处理和绘制库,例如ReportLab用于PDF文档生成、Wand用于ImageMagick的Python绑定、VTK用于三维可视化等等。

总之,Python在图像处理和绘制方面拥有丰富的库和工具,可以满足不同领域和应用的需求,也为Python成为数据科学和机器学习领域的主流编程语言之一提供了强大的支持。

以下是一些 Python 中与图片绘制和输出有关的库:

  1. Matplotlib:用于生成各种类型的图表和图像,包括线图、散点图、柱状图、等高线图、3D图像等。

  2. PIL/Pillow:Python Imaging Library,用于图像处理和操作,包括图像缩放、裁剪、旋转、滤镜等操作。

  3. OpenCV:开源计算机视觉库,用于图像处理、分析和识别,包括特征提取、目标检测、人脸识别等操作。

  4. scikit-image:用于图像处理和计算机视觉的 Python 库,包括图像滤波、边缘检测、图像分割、形态学操作等。

  5. Pygame:用于游戏开发的 Python 库,可以用于图像处理和绘制。

  6. ReportLab:用于生成 PDF 文档的 Python 库,包括图像、表格、图表等元素的生成和排版。

  7. Wand:Python 的 ImageMagick 绑定库,可以进行图像处理和转换操作。

  8. VTK:Visualization Toolkit,用于科学数据的可视化和处理,支持体数据、流数据、表面数据等类型的可视化。

  9. Bokeh:用于生成交互式数据可视化的 Python 库,支持多种图表类型和交互方式。

  10. Seaborn:基于 Matplotlib 的 Python 可视化库,专注于统计数据可视化,支持多种统计图表类型。

这些库提供了丰富的功能和工具,可以满足不同应用场景下的图像处理和绘制需求。

Matplotlib

Matplotlib 是一个广泛使用的 Python 可视化库,用于生成各种类型的图表和图像,包括线图、散点图、柱状图、等高线图、3D 图像等。Matplotlib 以简单易用的 API 和丰富的功能得到了广泛的应用,可以用于数据可视化、科学研究、工程应用等多个领域。

Matplotlib 的主要特点包括:

  1. 灵活性和定制性:Matplotlib 提供了丰富的配置选项和细节控制,用户可以对图像的每个细节进行精细的调整,包括图像大小、颜色、标签、字体等。

  2. 多样化的图像类型:Matplotlib 支持多种类型的图像,包括线图、散点图、柱状图、等高线图、3D 图像等,可以满足不同类型的数据可视化需求。

  3. 跨平台性:Matplotlib 可以在多种操作系统和环境下运行,包括 Windows、Linux、MacOS 等,并且可以支持多种输出格式,包括 PNG、PDF、SVG 等。

  4. 面向对象和易用性:Matplotlib 的 API 设计基于面向对象编程和自然语言描述,易于学习和使用,并且可以方便地与其他 Python 库进行集成。

Matplotlib 的基本使用方法是通过创建 Figure 对象和 Axes 对象来生成图像。Figure 对象是一个容器,可以包含多个 Axes 对象,Axes 对象是实际绘图区域,可以在上面绘制各种类型的图像。

以下是一个简单的 Matplotlib 示例:

import matplotlib.pyplot as plt
import numpy as np

# 生成数据
x = np.linspace(0, 10, 100)
y = np.sin(x)

# 创建 Figure 和 Axes 对象
fig, ax = plt.subplots()

# 绘制曲线
ax.plot(x, y)

# 添加标题和标签
ax.set_title('Sin Curve')
ax.set_xlabel('X')
ax.set_ylabel('Y')

# 显示图像
plt.show()

该示例生成了一个正弦曲线图像,包括 X 轴、Y 轴标签和标题。Matplotlib 通过 plot() 方法绘制曲线,set_title()、set_xlabel() 和 set_ylabel() 方法添加标题和标签,show() 方法显示图像。

除了基本绘图功能外,Matplotlib 还提供了丰富的细节控制和高级绘图功能,包括子图、图例、文本注释、样式控制等,可以满足各种绘图需求。

PIL/Pillow

PIL(Python Imaging Library)是一个用于图像处理的 Python 库,它提供了一系列用于读取、操作和保存多种图像格式的函数和方法。然而,由于 PIL 开发较为缓慢,而且它只支持 Python 2.x 系列的版本,因此就有了一个名为 Pillow 的分支库,它是 PIL 的一个重写和扩展,支持 Python 2.x 和 Python 3.x 系列的版本。

Pillow 主要提供以下功能:

  1. 图像读取和保存:Pillow 可以读取多种格式的图像文件,包括 BMP、PNG、JPEG、GIF、TIFF 等,也可以将图像保存为不同的格式。

  2. 图像操作和处理:Pillow 提供了一系列用于图像处理和操作的方法,包括裁剪、旋转、缩放、调整图像大小、变换颜色空间、图像增强等。

  3. 绘图和文本处理:Pillow 可以在图像上绘制各种形状、线条、文本等元素,并且可以对这些元素进行控制和样式设置。

  4. 高级图像处理和分析:Pillow 还提供了一些高级的图像处理和分析功能,如图像滤波、傅里叶变换、形态学操作、颜色分析等。

以下是一个简单的 Pillow 示例:

from PIL import Image

# 读取图像
im = Image.open('test.jpg')

# 调整大小
im = im.resize((200, 200))

# 转换为灰度图像
im = im.convert('L')

# 保存图像
im.save('test_gray.jpg')

该示例读取一张 JPG 格式的图像,调整大小为 200x200,转换为灰度图像,最后保存为 JPG 格式。Pillow 的基本操作通过 Image 类实现,可以使用 open() 方法读取图像文件,resize() 方法调整大小,convert() 方法转换图像类型,save() 方法保存图像。

除了基本功能外,Pillow 还提供了丰富的图像处理和操作功能,可以满足各种图像处理需求。例如,可以使用 crop() 方法裁剪图像,rotate() 方法旋转图像,filter() 方法应用图像滤波器,draw() 方法绘制图形等。

总之,Pillow 是一个功能丰富、易于使用的图像处理库,可以用于多种图像处理和分析任务,例如计算机视觉、图像识别、图像增强、图像生成等。

OpenCV

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,主要用于图像处理、计算机视觉和机器学习等领域。它最初由 Intel 开发,现已成为开源社区中最流行的计算机视觉库之一,支持多种操作系统和编程语言,如 C++、Python 和 Java 等。

OpenCV 主要提供以下功能:

  1. 图像读取和保存:OpenCV 支持多种格式的图像读取和保存,包括 BMP、PNG、JPEG、GIF、TIFF 等。

  2. 图像处理和操作:OpenCV 提供了大量用于图像处理和操作的函数和方法,包括图像变换、图像增强、图像滤波、特征提取、目标检测、图像分割等。

  3. 视频处理和分析:OpenCV 还支持对视频的读取和处理,包括视频的捕获、视频的编码和解码、视频的转换、视频的分析等。

  4. 机器学习和深度学习:OpenCV 提供了一些基于机器学习和深度学习的算法和模型,包括分类、聚类、回归、检测、识别、分割等。

以下是一个简单的 OpenCV 示例:

import cv2

# 读取图像
img = cv2.imread('test.jpg')

# 将图像转为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 检测图像中的人脸
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.3, minNeighbors=5)

# 绘制人脸框
for (x, y, w, h) in faces:
    cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)

# 显示图像
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

该示例使用 OpenCV 读取一张 JPG 格式的图像,将其转为灰度图像,然后使用 Haar 级联分类器检测图像中的人脸,并用矩形框标注出来。OpenCV 的基本操作通过 cv2 模块实现,可以使用 imread() 方法读取图像文件,cvtColor() 方法转换颜色空间,CascadeClassifier() 方法加载分类器,detectMultiScale() 方法检测目标,rectangle() 方法绘制矩形框等。

除了基本功能外,OpenCV 还提供了许多高级的图像处理和分析功能,如模板匹配、图像分割、光流估计、深度估计、目标跟踪等。此外,OpenCV 还可以与其他计算机视觉库和框架配合使用。

Scikit-image

Scikit-image(skimage)是一个基于 Python 的图像处理库,主要用于处理数字图像和计算机视觉领域的图像处理任务。它提供了一系列简单易用的接口和算法,使得图像处理的实现更加高效和简单。

Scikit-image 的主要功能包括:

  1. 图像预处理:如图像缩放、旋转、翻转、裁剪、平移、灰度化、二值化、滤波、边缘检测等。

  2. 特征提取:如角点检测、边缘检测、轮廓提取、形状分析、几何变换等。

  3. 图像分割:如阈值分割、区域生长、分水岭分割、超像素分割、连通域分析等。

  4. 目标检测:如人脸检测、车牌检测、目标跟踪等。

Scikit-image 的主要特点包括:

  1. 便捷的图像输入和输出:Scikit-image 支持多种图像格式的读取和保存,如 BMP、PNG、JPEG、GIF、TIFF 等。

  2. 高效的算法和接口:Scikit-image 的算法和接口设计简单明了,使用起来方便快捷。

  3. 广泛的应用范围:Scikit-image 可以应用于多种领域,如医学图像处理、地球物理学、计算机视觉等。

下面是一个简单的 Scikit-image 示例:

from skimage import io, color, filters

# 读取图像
image = io.imread('test.jpg')

# 将图像转换为灰度图像
gray = color.rgb2gray(image)

# 使用 Sobel 算子检测图像边缘
edge = filters.sobel(gray)

# 显示图像
io.imshow(edge)
io.show()

该示例使用 Scikit-image 读取一张 JPG 格式的图像,将其转为灰度图像,然后使用 Sobel 算子检测图像的边缘。Scikit-image 的基本操作通过 skimage 模块实现,可以使用 io.imread() 方法读取图像文件,color.rgb2gray() 方法将图像转换为灰度图像,filters.sobel() 方法进行边缘检测,io.imshow() 方法显示图像等。

除了基本功能外,Scikit-image 还提供了许多高级的图像处理和分析功能,如形态学变换、颜色空间转换、多分辨率分析、图像配准、图像复原等。此外,Scikit-image 还可以与其他 Python 库和框架集成,如 NumPy、Matplotlib、OpenCV 等,以便更加灵活地进行图像处理和分析。

Pygame

Pygame是一个基于Python的游戏开发库,提供了一系列简单易用的接口和工具,用于快速开发2D游戏和图形化应用程序。它是一个跨平台的开发库,可以在多个操作系统(如Windows、Mac OS X、Linux、Android等)上使用。

Pygame的主要功能包括:

  1. 窗口管理:Pygame可以创建游戏窗口,并提供了窗口大小、标题、位置等基本属性的控制。

  2. 图像处理:Pygame可以加载和处理图像,并提供了旋转、翻转、缩放、剪裁等图像操作。

  3. 动画效果:Pygame可以通过定时器和帧率控制实现动画效果,并提供了渐变、淡入淡出等特效。

  4. 音频处理:Pygame可以加载和处理音频,并提供了播放、暂停、停止、循环等音频控制。

  5. 事件处理:Pygame可以处理各种事件,如键盘事件、鼠标事件、窗口事件等。

  6. 输入控制:Pygame可以获取键盘、鼠标、手柄等输入设备的状态,并提供了按键检测、鼠标位置等功能。

  7. 物理模拟:Pygame提供了基本的物理引擎,如碰撞检测、重力、摩擦力等,用于模拟物理效果。

  8. 网络通信:Pygame可以通过TCP/IP协议实现多人游戏和联机功能。

Pygame的主要特点包括:

  1. 简单易用:Pygame的API设计简单明了,使用起来方便快捷。

  2. 跨平台支持:Pygame可以在多个操作系统上使用,如Windows、Mac OS X、Linux、Android等。

  3. 多媒体支持:Pygame支持多种多媒体格式,如PNG、JPEG、GIF、BMP、WAV、MP3等。

  4. 开源免费:Pygame是一个开源的软件库,可以免费使用和修改。

下面是一个简单的Pygame示例:

import pygame

# 初始化Pygame
pygame.init()

# 创建游戏窗口
screen = pygame.display.set_mode((640, 480))

# 加载图像
image = pygame.image.load("test.png")

# 在游戏窗口中显示图像
screen.blit(image, (0, 0))

# 刷新游戏窗口
pygame.display.update()

# 进入游戏循环
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            exit()

该示例使用Pygame创建了一个640x480大小的游戏窗口,并在窗口中显示了一张名为"test.png"的图像。随后,进入了游戏循环,处理窗口事件。如果

用户点击了窗口的关闭按钮,则退出游戏循环并关闭Pygame。

ReportLab

ReportLab是一个用于生成PDF文档的Python库。它提供了一系列的API和工具,可以用于创建和编辑PDF文档,包括添加文本、图像、表格、条形码等元素。

ReportLab最初是由一家名为ReportLab Inc.的公司开发的,目的是为了简化和加速PDF文档的生成过程。ReportLab提供了一个高度灵活和易用的API,使得开发人员可以快速地生成各种类型的PDF文档,从简单的报告到复杂的合同和发票等。

ReportLab支持多种文本格式,包括HTML、Markdown、Rich Text等,并且可以将其转换为PDF格式。除了文本,它还支持添加图像、表格、条形码、图表等元素,并提供了一些基本的布局管理工具,如流式布局、网格布局等。

除了生成PDF文档,ReportLab还提供了一些额外的工具,如PDF合并、PDF加密、PDF签名等。这些工具可以帮助开发人员更好地管理和保护生成的PDF文档。

ReportLab的主要特点包括:

  1. 灵活性:ReportLab提供了丰富的API和工具,使得开发人员可以轻松地生成各种类型的PDF文档。

  2. 易用性:ReportLab的API设计简单明了,易于学习和使用。

  3. 可扩展性:ReportLab可以通过第三方扩展库进行扩展,使其功能更加强大和丰富。

  4. 跨平台支持:ReportLab可以在多个操作系统上使用,如Windows、Mac OS X、Linux等。

  5. 开源免费:ReportLab是一个开源的软件库,可以免费使用和修改。

下面是一个简单的ReportLab示例:

from reportlab.pdfgen import canvas

# 创建PDF文档
pdf = canvas.Canvas("example.pdf")

# 添加文本
pdf.drawString(100, 750, "Welcome to ReportLab!")

# 添加图像
pdf.drawInlineImage("example.jpg", 100, 500)

# 添加表格
data = [['Name', 'Age', 'Gender'],
        ['Tom', 25, 'Male'],
        ['Alice', 30, 'Female'],
        ['Bob', 35, 'Male']]
pdf.table(data)

# 保存PDF文档
pdf.save()

该示例使用ReportLab创建了一个PDF文档,并在其中添加了文本、图像和表格等元素。最后,将生成的PDF文档保存在本地。

Wand

Wand是一个Python库,用于对图像进行处理和转换。它是基于ImageMagick开发的,可以使用ImageMagick中的丰富功能来处理图像,如转换、缩放、剪裁、旋转、合并等。Wand提供了一种Pythonic的方式来调用ImageMagick的API,使得图像处理变得简单、快速和灵活。

Wand支持多种图像格式,如JPEG、PNG、GIF、TIFF等,并且可以将图像转换为不同的格式。它还支持Alpha通道、色彩空间转换、图像滤镜等高级功能。

除了基本的图像处理,Wand还提供了一些高级功能,如绘图、文字处理、图像合成等。它支持Pango和Cairo库,可以使用高质量的字体和图形渲染。同时,它还支持与其他Python库和Web框架的集成,如Django、Flask、Pillow等。

Wand的主要特点包括:

  1. 灵活性:Wand提供了丰富的API和工具,使得开发人员可以轻松地处理各种类型的图像。

  2. 易用性:Wand的API设计简单明了,易于学习和使用。

  3. 可扩展性:Wand可以通过ImageMagick插件进行扩展,使其功能更加强大和丰富。

  4. 跨平台支持:Wand可以在多个操作系统上使用,如Windows、Mac OS X、Linux等。

  5. 开源免费:Wand是一个开源的软件库,可以免费使用和修改。

下面是一个简单的Wand示例:

from wand.image import Image

# 打开图像文件
with Image(filename='example.jpg') as img:
    # 调整图像大小
    img.resize(300, 300)

    # 裁剪图像
    img.crop(100, 100, 200, 200)

    # 添加文字
    img.caption('Hello World!')

    # 保存图像
    img.save(filename='output.png')

该示例使用Wand打开一张JPEG图像,并在其中进行了大小调整、裁剪和文字添加等处理。最后,将处理后的图像保存为PNG格式。

VTK

VTK(Visualization Toolkit)是一个用于三维计算机图形学、图像处理和可视化的开源软件系统。它是由美国国家实验室开发的,是一个跨平台的C++库,同时还提供了Python、Java等语言的接口。VTK提供了许多高级的可视化算法和工具,可以轻松地创建各种复杂的三维可视化应用。

VTK的主要特点包括:

  1. 跨平台支持:VTK可以在Windows、Mac OS X、Linux等多个操作系统上运行,并且支持多种编译器和平台。

  2. 开源免费:VTK是一个开源的软件系统,可以免费使用和修改。

  3. 功能强大:VTK提供了许多高级的可视化算法和工具,如数据可视化、图像处理、体绘制、曲面绘制等。

  4. 易于使用:VTK提供了简单易用的API和工具,使得开发人员可以快速创建各种复杂的三维可视化应用。

  5. 可扩展性:VTK可以通过插件机制进行扩展,开发人员可以根据自己的需求添加自定义的算法和工具。

VTK的基本数据结构是由点、线、面、单元等基本几何实体组成的数据集。VTK提供了许多数据集类型,如点云、结构网格、非结构网格、图像数据等。通过对这些数据集进行处理和可视化,可以创建各种复杂的三维可视化应用。

VTK还提供了许多高级的可视化算法和工具,如等值面提取、体绘制、曲面绘制、投影显示、流线显示等。同时,它还支持与其他可视化库和工具的集成,如ParaView、MayaVi、ITK等。

VTK的Python接口使得开发人员可以使用Python脚本来控制VTK的各种功能。这种方式使得VTK的使用变得更加简单和快速,同时也可以更方便地与其他Python库和工具进行集成。

下面是一个简单的VTK示例:

import vtk

# 创建一个球体
sphere = vtk.vtkSphereSource()
sphere.SetCenter(0, 0, 0)
sphere.SetRadius(1)

# 创建一个mapper
mapper = vtk.vtkPolyDataMapper()
mapper.SetInputConnection(sphere.GetOutputPort())

# 创建一个actor
actor = vtk.vtkActor()
actor.SetMapper(mapper)

# 创建一个渲染器和一个窗口
renderer = vtk.vtkRenderer()
renderer.AddActor(actor)
window = vtk.vtkRenderWindow()
window.AddRenderer(renderer)

# 创建一个交互器
interactor = vtk.vtkRenderWindowInteractor()
interactor.SetRenderWindow(window)

# 启动渲染
interactor.Initialize()
window.Render()
interactor.Start

这段代码创建了一个球体,并将其渲染到屏幕上。最后,调用interactor.Start()启动交互式会话循环,这样用户就可以通过鼠标和键盘操作来旋转、缩放、平移球体了。

Bokeh

Bokeh是一个用于构建交互式Web数据可视化应用程序的Python库。它提供了一种简单的方法来创建高质量、漂亮的图表和可视化效果,这些可视化效果可以与其他Python库和Web框架集成。

Bokeh的主要特点包括:

  1. 交互性:Bokeh支持交互式数据可视化,可以实时查看、过滤和探索数据。

  2. 易于使用:Bokeh提供了简单易用的API和工具,使得开发人员可以快速创建各种复杂的交互式可视化应用。

  3. 支持多种数据源:Bokeh可以处理多种数据类型,如Pandas、NumPy、SciPy等。

  4. 多种输出选项:Bokeh支持多种输出选项,包括HTML、JavaScript和PNG等格式。

  5. 可扩展性:Bokeh可以与其他Python库和Web框架集成,如Flask、Django、Jupyter等。

Bokeh支持多种类型的图表和可视化效果,包括散点图、折线图、条形图、热力图、网络图等。这些可视化效果可以使用Python代码来创建,同时还可以添加交互式元素,如工具栏、滑块、选择器等。

下面是一个简单的Bokeh示例:

from bokeh.plotting import figure, show

# 创建一个图表
p = figure(title='Bokeh Example')

# 添加数据
p.circle([1, 2, 3, 4, 5], [6, 7, 2, 4, 5])

# 显示图表
show(p)

这段代码创建了一个散点图,并在其中添加了一些数据。最后使用show()函数将图表显示在Web浏览器中。

Bokeh还提供了其他高级功能,如数据表、布局选项、颜色映射等。开发人员可以根据自己的需求使用这些功能来创建各种复杂的交互式数据可视化应用程序。

Seaborn

Seaborn是一个基于Matplotlib的数据可视化库,它提供了更高级别的界面和更多的绘图选项,使得数据可视化更加容易和美观。Seaborn的设计目的是通过在Matplotlib上建立高级界面来简化许多常见的数据可视化任务。

Seaborn提供了多种绘图类型,包括:

  • 线图

  • 散点图

  • 条形图

  • 直方图

  • 箱线图

  • 热力图

  • 等高线图

  • 分面网格图

  • 联合分布图

  • 时间序列图等等。

Seaborn还提供了许多定制化选项,包括颜色主题、轴标签、图例、标题、字体等等。Seaborn的默认色板也非常美观,可以自由选择不同的色调风格。

Seaborn还支持在DataFrame中使用变量名绘制图形,可以方便地使用Pandas库中的数据结构。

下面是一个使用Seaborn绘制简单图形的示例:

import seaborn as sns
import matplotlib.pyplot as plt

# 加载数据集
tips = sns.load_dataset("tips")

# 绘制直方图
sns.histplot(data=tips, x="total_bill")

# 添加标题和标签
plt.title("Total Bill Distribution")
plt.xlabel("Total Bill")
plt.ylabel("Frequency")

# 显示图形
plt.show()

这段代码使用Seaborn加载了一个名为"tips"的数据集,并绘制了一个直方图,显示了餐厅账单的分布情况。在绘制过程中,可以通过定制化选项来设置图形的外观和样式。最后,使用Matplotlib库的plt模块显示图形。

---------------------------END---------------------------

题外话

感谢你能看到最后,给大家准备了一些福利!

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img

二、Python兼职渠道推荐*

学的同时助你创收,每天花1-2小时兼职,轻松稿定生活费.
在这里插入图片描述

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

  • 17
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值