Python来完成简单图像处理任务

图片存取函数 不需要整体照着敲一遍,主要是读取的方法,存储的格式。 比如: img可以使用cv2包中的imread函数读取,读取需要路径:imagepath就是路径,比如 "../abc.png" 然后呢,cv2.imwriter这个函数可以存储,同样需要存储的文件夹路径,savepath,比如 "../ABC/1.png" ,注意啊,它写的第二个实参是img,是将这个矩阵img存储到savepath这个路径里面。 当然,有的函数不需要这样写,比如 img.save ,如下这个函数存储就不需要写两个参... 阅读详情

摘要:本文简单介绍了用Python来完成简单图像处理任务的方法。虽然图像处理的最佳工具是MATLAB的图像处理工具箱,但是在进行一些“简单的”图像处理任务或者大批量的简单图像处理任务的时候,Python更有优势。

关键词:图像处理 图像增强 Python

Abstract:This context introduces some methods used to fullfill simply image processing task in python programming language.Although the best image processing toolkit is the Image Processing Toolbox of MATLAB,python is superior to this toolkit when your staff is somewhat “simple” or simple but boring and exhausting image processing commitment.

Keywords:Image Processing Image Enhancement Python

1.引言:

提到图像处理,人们通常想到的工具是MATLAB。诚然,MATLAB提供了一个强大的图像处理工具箱。但是,对于简单的图像处理任务而言,采用一种高级的语言将起到事半功倍的效果。Python无疑就是实现这一功能的理想选择。Python的面向对象、弱数据类型等等特性都使得用它来进行简单的图像处理的时候非常的简洁方便。

2.简介:

PythonWare公司提供了免费的图像处理工具包PIL(Python Image Library),该软件包提供了基本的图像处理功能,如:改变图像大小,旋转图像,图像格式转换,色场空间转换,图像增强,直方图处理,插值和滤波等等。虽然在这个软件包上要实现类似MATLAB中的复杂的图像处理算法并不太适合,但是Python的快速开发能力以及面向对象等等诸多特点使得它非常适合用来进行原型开发。

在PIL中,任何一副图像都是用一个Image对象表示,而这个类由和它同名的模块导出,因此,要加载一副图像,最简单的形式是这样的:

import Image

img = Image.open(“dip.jpg”)

注意:第一行的Image是模块名;第二行的img是一个Image对象; Image类是在Image模块中定义的。关于Image模块和Image类,切记不要混淆了。现在,我们就可以对img进行各种操作了,所有对img的操作最终都会反映到到dip.img图像上。

PIL提供了丰富的功能模块:Image,ImageDraw,ImageEnhance,ImageFile等等。最常用到的模块是Image,ImageDraw,ImageEnhance这三个模块。下面我对此分别做一介绍。关于其它模块的使用请参见说明文档.有关PIL软件包和相关的说明文档可在PythonWare的站点www.pythonware.com上获得。

3.Image模块:

Image模块是PIL最基本的模块,其中导出了Image类,一个Image类实例对象就对应了一副图像。同时,Image模块还提供了很多有用的函数。

(1)打开一副图像文件:

import Image

img = Image.open(“dip.jpg”)

这将返回一个Image类实例对象,后面的所有的操作都是在img上完成的。在这里,我们读入的图像是:

(2)调整图像大小:

import Image

img = Image.open("img.jpg")

new_img = img.resize((128,128),Image.BILINEAR)

new_img.save("new_img.jpg")

原来的图像大小是256x256,现在,保存的new_img.jpg的大小是128x128:

就是这么简单,需要说明的是Image.BILINEAR指定采用双线性法对像素点插值。

(3)旋转图像:

现在我们把刚才调整过大小的图像旋转45度:

import Image

img = Image.open("img.jpg")

new_img = img.resize((128,128),Image.BILINEAR)

rot_img = new_img.rotate(45)

rot_img.save("rot_img.jpg")

于是我们保存到rot_img.jpg的图像看起来像下面这样:

(4)格式转换:

假设我们要把上面生成的rot_img.jpg转换成bmp图像,要做到这一点这太简单了:只需要在上面的代码后面添加下面这样一行即可:

rot_img.save("con_img.bmp")

如果不指定保存格式,PIL将自动根据文件名后缀完成格式之间的转换,是不是很简单呢?

(5)直方图统计:

Image类实例的histogram()方法能够对直方图数据进行统计,并将结果做为一个列表(list)返回。比如,我们对上面的旋转后生成的图像进行直方图统计:

import Image

img = Image.open("img.jpg")

new_img = img.resize((128,128),Image.BILINEAR)

rot_img = new_img.rotate(45)

print rot_img.histogram()

运行之后将打印出所有256个灰度级像素点个数的统计值:

[2819, 22, 82, 119, 186, 204, 212, 218, 223, 200, 151, 103, 129, 74, 80, 83, 110, 70, 59, 64, 59, 58, 35, 45, 42, 38, 32, 39, 33, 19, 24, 26, 32, 17, 33, 24, 34, 19, 18, 15, 11, 23, 16, 15, 21, 13, 20, 22, 27, 10, 29, 26, 18, 16, 28, 18, 26, 37, 36, 25, 28, 36, 28, 31, 22, 20, 15, 13, 15, 18, 12, 15, 21, 21, 12, 18, 17, 12, 11, 18, 16, 14, 21, 20, 18, 19, 15, 20, 22, 16, 22, 15, 23, 26, 16, 8, 13, 19, 30, 16, 15, 11, 22, 12, 14, 8, 10, 14, 13, 8, 12, 22, 11, 13, 18, 16, 21, 21, 14, 14, 11, 14, 15, 9, 23, 19, 15, 17, 9, 10, 11, 12, 14, 16, 9, 17, 15, 20, 14, 18, 18, 32, 34, 55, 54, 51, 72, 78, 83, 99, 118, 171, 138, 177, 191, 158, 159, 123, 106, 136, 121, 121, 148, 137, 118, 145, 150, 150, 133, 98, 111, 118, 111, 104, 129, 124, 104, 144, 126, 118, 133, 124, 108, 87, 87, 83, 85, 75, 76, 75, 62, 84, 46, 61, 54, 54, 63, 45, 54, 66, 46, 52, 51, 49, 51, 52, 62, 50, 67, 72, 53, 53, 83, 54, 39, 57, 31, 53, 31, 38, 38, 42, 31, 29, 38, 39, 39, 26, 43, 36, 45, 68, 57, 60, 42, 39, 41, 38, 46, 44, 40, 47, 57, 45, 59, 53, 59, 81, 78, 75, 95, 46, 62, 1, 0, 0]

小结:以上介绍了Image模块最基本的功能,作为对PIL库初步的认识已经足够了,值得说明的是,这里提到只是Image一部分功能而已,要对整个Image模块的功能有一个全面的了解和掌握,请参见PIL-handbook.pdf。

4.ImageDraw模块:

ImageDraw模块提供了基本的图形能力,这里的图形能力指的主要是图形的绘制能力。PIL库提供了比较丰富的图形绘制函数,可以绘制直线、弧线、矩形、多边形、椭圆、扇形等等。ImageDraw实现了一个Draw类,所有的图形绘制功能都是在Draw类实例的方法中实现的。实例化一个Draw类实例很简单:

import Image,ImageDraw

img = Image.open("img.jpg")

draw = ImageDraw.Draw(img)

首先要导入ImageDraw模块。然后,因为绘图操作是在图像上进行的,因此实例化Draw类的时候要把Image对象img通过参数传递给Draw类的构造函数。现在,你就可以调用draw的各种方法在img上绘制图形了。

(1)绘制直线:

import Image,ImageDraw

img = Image.open("img.jpg")

draw = ImageDraw.Draw(img)

width,height = img.size

draw.line(((0,0),(width-1,height-1)),fill=255)

draw.line(((0,height-1),(width-1,0)),fill=255)

img.save("cross_line.jpg")

解释一下上面这段代码:

前面三行这里就不解释了。width,height = img.size是得到img的大小,得到这两个属性的主要目的是要在下面的两行代码中使用:

draw.line(((0,0),(width-1,height-1)),fill=255)

draw.line(((0,height-1),(width-1,0)),fill=255)

这两行代码在img图像的两个对角线方向绘制了两条直线。最后,我们把绘制了两条对角线的图像保存为cross_line.jpg,最后得到的效果如下面所示:

(2)绘制圆:

import Image,ImageDraw

img = Image.open("img.jpg")

width,height = img.size

draw = ImageDraw.Draw(img)

draw.arc((0,0,width-1,height-1),0,360,fill=255)

img.save("circle.jpg")

这几行代码和上面绘制对角线的代码相比,只更改了一行,即:

draw.arc((0,0,width-1,height-1),0,360,fill=255)

说明:

(0,0,width-1,height-1)指定了所画弧线的界限;

0,360是所画弧线的起始角度和终止角度;

fill=255指定了所画线的颜色,注意:PIL的文档上说这里应该用outline=255,但是我发现实际只能用fill=255来指定弧线的颜色。

绘制圆后的图像:

小结:有关图形绘制的操作都是类似的,因此这里只给出一个简略的介绍。详细规范请参见PIL-handbook.pdf。

5.ImageEnhance模块:

这个模块提供了一个常用的图像增强工具箱。可以用来进行色彩增强、亮度增强、对比度增强、图像尖锐化等等增强操作。所有操作都有相同形式的接口——通过相应类的enhance方法实现:色彩增强通过Color类的enhance方法实现;亮度增强通过Brightness类的enhance方法实现;对比度增强通过Contrast类的enhance方法实现;尖锐化通过Sharpness类的enhance方法实现。所有的操作都需要向类的构造函数传递一个Image对象作为参数,这个参数定义了增强作用的对象。同时所有的操作都返回一个新的Image对象。如果传给enhance方法的参数是1.0,则不对原图像做任何改变,直接返回原图像的一个拷贝。下面我们通过几个简单的例子进行说明:

(1)亮度增强:

import Image,ImageEnhance

img = Image.open("img.jpg")

brightness = ImageEnhance.Brightness(img)

bright_img = brightness.enhance(2.0)

bright_img.save("bright.jpg")

说明:

brightness = ImageEnhance.Brightness(img)

这一行把img传给Brightness类,得到一个Brightness类实例;

bright_img = brightness.enhance(2.0)

这一行调用brightness实例的enhance方法,传入的参数指定将亮度增强2倍;

我们最后得到bright.jpg图像看起来像这样:

 

右边的的图像是增强之前的图像(原图像),注意两者的亮度差比是很大的。

(2)图像尖锐化:

import Image,ImageEnhance

img = Image.open("img.jpg")

sharpness = ImageEnhance.Sharpness(img)

sharp_img = sharpness.enhance(7.0)

sharp_img.save("bright.jpg")

这段代码和上面的完全类似,因此这里不做过多的说明。我们来看一下增强前后的效果对比:

 

右边的的图像是增强之前的原图像,注意两者的尖锐化程度是很不一样的。

(3)对比度增强:

import Image,ImageEnhance

img = Image.open("img.jpg")

contrast = ImageEnhance.Contrast(img)

contrast_img = contrast.enhance(2.0)

contrast_img.save("contrast.jpg")

同上,我们只看增强前后的效果对比:

 

很明显,增强之后的图像(左边)比原来的图像(右边)对比度提高了。

小结:用ImageEnhance来进行常用的图像增强是有效的,并且很简单。当然,对于精细复杂的图像增强操作而言这里提供的功能不够强大,但是在进行简单的图像增强操作的时候,一种简单易行的解决方案无疑是很吸引人的。

6.总结:

在批处理或者简单的图像处理任务中,采用python和PIL(Python Image Library)的组合来完成图像处理任务是一个很不错的选择。设想有一个需要对某个文件夹下的所有图像将对比度提高2倍的任务。用python来做将是十分简单的。当然,我也不得不承认python在图像处理方面的功能还比较弱,显然还不适合用来进行滤波、特征提取等等一些更为复杂的应用。我个人的观点是,当你要实现这些“高级”的算法的时候,好吧,把它交给MATLAB去完成。但是,如果你面对的只是一个通常的不要求很复杂算法的图像处理任务,那么,python应该才是你的最佳搭档。

参考文献:

1.《数字图像处理》(第二版);冈萨雷斯;电子工业出版社;2003;

2.《Python Image Library Handbook》;Fredrik Lundh,Matthew Ellis;PythonWare.Inc;2002;

3.《Python Documentation》(Release 2.3.3);Guido van Rossum;2003;

4.www.python.org

5.www.pythonware.org

用python实现区域找图,模拟点击 今年的双十一活动又有新套路啦,为了领点喵币,得不停地逛店铺,等15秒,不如用个小程序来解放自己~ adb下载链接 # -*- coding: utf-8 -*- """ 手机屏幕截图的代码 """ import subprocess import os import sys from PIL import Image # SCREENSHOT_WAY 是截图方法,经过 check_screen... 阅读详情

相关推荐

使用 OpenCV 读取、显示和写入图像

本文围绕OpenCV的安装和基本操作展开,通过逐步介绍其在Python环境下的安装配置、图像读取、显示以及保存等核心操作,使读者可以快速上手OpenCV的图像处理功能。OpenCV提供了丰富且灵活的接口,通过一系列函数调用,可以高效地加载、展示和存储图像,为实现更高级的视觉处理任务打下坚实基础。理解并掌握这些基础技能,有助于开发者更深入地探索OpenCV的强大功能,在图像识别、机器学习以及实时视频处理等领域中充分利用该库的潜力。

Mr数据杨 1929

推荐:用Python进行图像处理

  作者:rockins (成都 电子科技大学) 摘要:本文简单介绍了用Python来完成简单图像处理任务的方法。虽然图像处理的最佳工具是MATLAB的图像处理工具箱,但是在进行一些“简单的”图像处理任务或者大批量的简单图像处理任务的时候,Python更有优势。 关键词:图像处理 图像增强 Python Abstract:This context introduces some ...

weixin_34418883的博客 707

Python实战项目2——图片处理

(1)使用一个循环来将图片分成多个分组,每个分组包含至多9张图片。(2)最后将剩余的图片数量不满9张的部分作为一个分组。这个函数可以用于对图片进行分组操作。(1)通过文件对话框弹出文件夹选择对话框,用户在对话框中选择文件夹后,将文件夹路径显示在给定的文本框中。(2)这个函数可以用于在GUI界面中实现选择文件夹的功能。(1)实现了对输入文件夹中的图片进行处理,根据九宫格的规则将图片生成新的九宫格图片,并保存到输出文件夹中。(2)它还包括了错误处理和消息提示的功能。

记录开发和安全学习过程中的点点滴滴 1692

Python的计算机视觉与图像处理

1.背景介绍 1. 背景介绍 计算机视觉是一种通过计算机程序来模拟人类视觉系统的技术,主要研究的是如何让计算机从图像中提取有意义的信息。图像处理是计算机视觉的一个重要部分,主要关注于对图像进行处理和分析,以提取有用信息。Python是一种流行的编程语言,在计算机视觉和图像处理领域也有广泛的应用。 在本文中,我们将从以下几个方面进行探讨: 计算机视觉与图像处理的核心概念与联系 计算机视觉与...

AI天才研究院 1465

YOLO系列训练时出现loss出现nan值或者测试时P\R\map全部为0值的解决办法(GTX16xx系列显卡大坑)

YOLO系列训练时出现loss出现nan值或者测试时P\R\map全部为0值的解决办法(GTX16xx系列显卡大坑)

weixin_55249340的博客 3万+

卸载重装Ubuntu22.04双系统

先说一下写此篇文章的背景吧,我在Windows下配置了三个cornerNet深度学习环境分别是cuda10.3(显卡版本太高不支持),cuda11.3(配置后偶然看到一篇说这个版本win下只能用CPU跑),最后是cuda11.1终究还是没能跑通代码,因为它的代码是在Liunx系统写的,就想着装个Ubuntu试试看,在网上看说一般软件不要装太高版本,我就下载了470版的显卡驱动,跟着步骤升级了系统内核,结果第二天开机Ubuntu就崩了,开机黑屏左上角只有一道横杠显示,只能按ctrl+shift+f5进入命令窗

编程小白的博客 8106

豆酱踩坑(一)—— python 图片保存与显示

编程小白最近跑程序,自己读数据集,大大小小的坑踩了无数。。 汇总一下吧~~ 1. 使用save命令保存图片 img.save(img_path, optimize=True) 注:是针对Image格式的图片,数组形式的图片不能这么保存 可以使用 img = Image.fromarray(img) 将数组类型转换成Image格式 0-1之间的浮点数是不能保存成Image格式的 ...

qq_44965314的博客 4669

科研党必备:Python脚本批量下载DOI文献的保姆级教程(附避坑指南)

本文为科研人员提供了一份详细的Python脚本批量下载DOI文献的教程,涵盖环境配置、核心功能实现、性能优化及常见问题解决。通过自动化脚本,研究者可高效完成文献批量下载,显著提升科研工作效率,特别适合需要处理大量文献的研究团队使用。

weixin_26965807的博客 476

Python 图像处理:Pillow、OpenCV 实战指南

Pillow 是 Python 的一个图像处理库,它是 PIL(Python Imaging Library)的一个分支,支持多种图像格式的读取、写入和操作。Pillow 提供了丰富的图像处理功能,如缩放、裁剪、滤镜应用等,非常适合初学者和需要快速实现图像处理任务的开发者。OpenCV 是一个开源的计算机视觉库,广泛应用于图像处理、视频分析等领域。与 Pillow 不同,OpenCV 更加专注于计算机视觉任务,如特征检测、对象识别等。

2501_91226394的博客 290

ERA5 hourly data批量下载与cdo处理(一)

本篇文章主要介绍了ERA数据的批量下载

qq_40511689的博客 3871

Airtest进阶使用篇-提高脚本稳定性+批量运行脚本

Airtest进阶篇,主要分享如何提高脚本稳定性+如何批量运行脚本生成测试报告!

程序员小杨哥的博客 2569

一步步用python制作游戏外挂

玩过电脑游戏的同学对于外挂肯定不陌生,但是你在用外挂的时候有没有想过如何做一个外挂呢?(当然用外挂不是那么道义哈,呵呵),那我们就来看一下如何用python来制作一个外挂。。。。 我打开了4399小游戏网,点开了一个不知名的游戏,唔,做寿司的,有材料在一边,客人过来后说出他们的要求,你按照菜单做好端给他便好~ 为啥这么有难度?8种菜单记不清,点点就点错,鼠标还不好使肌肉劳损啥的伤

蓝色象牙 2万+

可编程逻辑控制器(PLC)系列:Mitsubishi MELSEC-Q_(8).MELSEC-Q系列PLC故障诊断与维护

MELSEC-Q系列PLC的故障诊断与维护是一个系统性的过程,需要工程师具备扎实的理论基础和丰富的实践经验。通过了解故障类型、使用诊断工具、遵循诊断步骤,可以有效地定位和解决故障问题。同时,定期的检查与保养、备份与恢复、优化程序和配置,以及提供良好的运行环境,可以减少故障的发生,提高系统的可靠性。希望本文能够帮助工程师在故障诊断与维护过程中更加得心应手,确保MELSEC-Q系列PLC的稳定运行。

2401_87715305的博客 1247

论做游戏外挂,Python输过谁?

玩过电脑游戏的同学对于外挂肯定不陌生,但是你在用外挂的时候有没有想过如何做一个外挂呢? 在这里插入图片描述 我打开了4399小游戏网,点开了一个不知名的游戏,唔,做寿司的,有材料在一边,客人过来后说出他们的要求,你按照菜单做好端给他便好~ 首先要声明,这里的游戏外挂的概念,和那些大型网游里的外挂可不同,不能自动打怪,不能喝药不能躲避GM…… 那做这个外挂有啥用?问的好,没用,除了可以浪费你一点时...

YPL_ZML的博客 574

如何解决群晖Docker注册表查询失败/无法拉取镜像等问题

如何解决群晖Docker注册表查询失败/无法拉取镜像等问题

XiaoqiangClub的博客 1万+

2、微软 Power Automate 入门指南

本文是一篇关于微软 Power Automate 的入门指南,详细介绍了 Power Automate 的基本概念、相关术语、登录方式以及如何创建一个简单的自动化流。文章还探讨了 Power Automate 在业务流程中的应用场景和优势,并展望了其高级功能和未来发展。适合希望快速入门 Power Automate 并提升业务自动化效率的读者。

corn8的博客 442

OpenCV:Python计算机视觉库详解

{

零度°C的博客 1056

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

基于opencv[python]的人脸检测

从这里可以清晰看到有1/3的图像没有成功检测到,后面我试试用Faster R-CNN模型,不过需要标注,数据量也大,这里先试着玩玩呗。

m0_65963495的博客 5524

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

AI学习-数据图片批量改名-win环境下-使用python脚本

我们操作图片的时候,经常需要,比如打标签,需要批量改名,因为我们做训练时,图片需要有比较合适的名字,为此我们需要改名,肯定不能一个一个手改的Python 脚本(Python Script)就是一段写好的 Python 代码文件,通常以 .py 结尾,比如 hello.py、train_model.py。虽然改名可以在打完标后,在进行改,但是打标后,需要和标签文件也要改稍微复杂一些。

qq_22146161的博客 540

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

【免费下载】 Atlas图片拆解工具脚本:一款功能强大的图像拆解利器

在游戏开发、UI设计以及图像处理领域,经常需要将复杂的图像拆解成单个元素进行使用。Atlas图片拆解工具脚本(以下简称Atlas)就是这样一款专为图像拆解任务设计的工具。它能够帮助你轻松地从一个图像集中提取出每一个单独的图像元素,从而便于你在不同的场景中重用这些资源。 ## 项目技术分析 Atlas基于Python语言开发,利用了Pillow这一强大的图像处理库。以下是项目的主要技术特点: ...

gitblog_06766的博客 846

python和matlab计算速度对比_python与matlab的速度。

I''ve been trying to develop some numerical codes with python, howevergot disappointed.A very simple test,a = 1.0for i in range(1000):for j in range(1000):a = a+1unfortunately, it took 4.5 seconds to ...

weixin_39580124的博客 944

知乎python培训班

对于我来说,影响工作效率,导致我不能按时下班的,除了领导英明的决策,还有另外一个罪魁祸首——知乎。 作为高知分子的集中地,知乎里面的人个个都是人才,说话又好听。然而知乎作为一个“时间杀手”,看看这个回答,逛逛那个live,不知不觉一整天的时间就过去了,而自己的工作却没有一点进展。 直到某一天我加班到深夜,我忽然想到,如果有一种工具能过滤掉那些过分诱人的消息,只留下我想要的东西,那我不就能摆脱知乎这个时间杀手了? 而爬虫似乎可以实现我的“天才构想。” 说到爬虫就不得不提起Python,毕竟用Pyt

weixin_63757190的博客 169

ROS——基于python3实现opencv图像处理任务

文章目录环境1.安装环境2.基于python3环境编译cv_bridge报错解决3.创建python3图像功能包测试建立python3功能包初始化工作空间创建功能包编写节点摄像头发布节点摄像头接收处理节点运行效果图 亲测可行,如有疑惑,直接先跳到最后查看效果图~所使用的python为3.6.9。 环境 Jetson nano Ubuntu18.04 python3.6.9 ROS Melodic Jetson系列基础环境配置:Jetson系列——Ubuntu18.04版本基础配置(换

Irving.Gao的博客 8425

轻松完成图像处理任务的Python工具

随着数字时代的到来,图像处理技术越来越重要。Python作为一门功能强大、易学易用的编程语言,自然也成为了图像处理领域的一把好手。Python提供了很多开源工具,可以帮助我们轻松完成各种图像处理任务。本文将介绍几种可用于图像处理的Python工具。

很酷的站长的博客 206

Python图像处理

python图像处理

Code搬运工 2万+
上一篇: C语言时间函数应用
下一篇: WebKit代码规范
b2b160
博客等级 码龄20年 2408粉丝 96原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值