当前位置: 代码网 > it编程>前端脚本>Python > Python实现BMP批量转PNG的5种实用方法

Python实现BMP批量转PNG的5种实用方法

2026年09月24日 Python 我要评论
前几天处理一个图纸归档需求,客户丢过来一千多张 bmp 底图,单张平均 6mb 左右,要全部转成 png 放进资料库,还要求单张尽量控制在 2mb 以内。这种需求在项目里太常见了:设计院发来的扫描底图

前几天处理一个图纸归档需求,客户丢过来一千多张 bmp 底图,单张平均 6mb 左右,要全部转成 png 放进资料库,还要求单张尽量控制在 2mb 以内。这种需求在项目里太常见了:设计院发来的扫描底图、老系统导出的位图、visio 默认存盘文件,动不动就是 bmp,而网页端、小程序、gis 底图偏偏只认 png。手动一张张另存为?我数了数,按正常手速,一千张图至少得坐一下午,而且容易漏转、转错,更别提中间还要跟客户确认细节。

这篇文章我就把 bmp 批量转 png 的 5 种方法一次性讲清楚,从 python 脚本到图形界面工具,从免费软件到命令行一条命令,基本覆盖了不同基础、不同场景的需求。不管你是天天要处理图片的运营、前端,还是偶尔接一次这种活儿的开发,顺着往下选一种适合自己的方法照着做就行。每种方法的原理、参数、注意事项我都会交代清楚,尽量让你看完就能直接上手,不用再去翻一堆零散教程。

1. 转换前先弄懂:bmp 和 png 的差距到底在哪

1.1 文件体积差好几倍的底层原因

bmp 这个格式,全称 bitmap,是微软在 windows 上最早推广的位图格式,核心特点就是“真·原样存储”。每个像素的颜色值直接写到文件里,24 位真彩色就是每个像素占 3 个字节,不做任何压缩。一张 1920x1080 的图,光图像数据就是 1920×1080×3 ≈ 6.2mb,再加上文件头信息,整体基本就是 6mb 上下。所以 bmp 的“大”不是设计缺陷,而是它的设计目标就是简单、可靠、快速读写,完全不在乎空间占用。早期软件和硬件都喜欢用它,因为读取逻辑最直接,不会遇到解码器兼容性问题。

png 的设计目标正好相反——它在保证无损的前提下,用了 deflate 压缩算法,把重复的像素数据给压缩掉。比如大面积纯色背景、渐变过渡区,这类数据在压缩后体积能降非常多。同一张图,bmp 转成 png,通常能压缩到原来的 1/5 到 1/3。如果原图本身色彩层次复杂、噪点多,压缩率会没那么夸张,但大部分工程图、扫描件、图标类图片,体积缩小都非常可观,实际项目中经常能从 6mb 压到 1mb 出头。

还有一个非常关键的差异是透明通道。bmp 基本不支持 alpha 透明度,windows 下的 32 位 bmp 虽然带着 alpha 位,但很多软件支持很差,读取出来经常是黑底或者花屏。png 则原生支持 8 位 alpha 通道,可以实现从全透明到半透明的平滑过渡。这也是网页端、gis 底图、ui 切图都倾向用 png 的原因,因为这些场景里经常需要无背景底图叠加到画布上。

1.2 什么场景不建议转成 png

说句实话,png 也不是万能的。如果你的图片是照片级的、包含大量细腻噪点的内容,png 压缩后会比较大,这时候 jpeg 或者 webp 反而是更好的选择,同样画质下体积能小一半以上。再比如需要动图的时候,png 也不合适,应该用 gif 或者 apng。另外,如果你的目标是极限压缩,png 也拼不过 webp。

决定用哪个格式,核心看两点:一是内容特点,二是使用场景。我做项目时的判断标准很简单——需要透明背景、需要无损保存、图片内容以文字线条或纯色块为主,优先 png;照片类、允许轻微压缩损失,优先 jpeg 或 webp。这篇讨论的“bmp 转 png”,在大多数工作场景里确实是合理选择,但搞清楚边界,以后遇到“为什么转完还是很大”这类问题,你就知道问题出在原图内容而不是格式本身了。

2. 方法一:python + pillow 写脚本,一次性搞定所有 bmp

2.1 环境准备,装好 pillow

如果你电脑上有 python 环境,这个方法最省事。pillow 是 python 最主流的图像处理库,底层封装了各种格式的解码器和编码器,bmp、png 这种常见格式都是内置支持,不需要额外下载编解码组件,也不依赖系统里装没装看图软件。安装就一行命令:

pip install pillow

装完之后可以直接在命令行里敲 python 进入交互模式验证一下:

from pil import image
print(image.__version__)

如果能正常输出版本号,说明 pillow 装好了。如果 pip 安装很慢,可以加国内镜像源,速度会快很多:

pip install pillow -i https://pypi.tuna.tsinghua.edu.cn/simple

这里有个小提醒:如果你电脑上同时装了多个 python 版本,建议先在命令行确认一下当前默认的 python 是哪个。很多人在这一步翻车,pip 装在 python 3.9 上,运行脚本用的却是 python 3.11,结果报 modulenotfounderror,其实不是代码问题,是版本环境串了。可以用 python --version 和 pip --version 对比一下两个版本号是否一致。

2.2 最简批量转换脚本,直接复制就能跑

新建一个文件,比如 bmp_to_png.py,直接复制下面的代码。这个脚本的逻辑很简单:遍历输入目录下所有扩展名是 .bmp 的文件,用 pillow 打开,再以 png 格式另存,文件名保持原样,只把扩展名换成 .png。

import os
from pil import image

def convert_bmp_to_png(input_dir, output_dir=none):
    if output_dir is none:
        output_dir = input_dir

    os.makedirs(output_dir, exist_ok=true)

    for filename in os.listdir(input_dir):
        if filename.lower().endswith('.bmp'):
            bmp_path = os.path.join(input_dir, filename)
            png_filename = os.path.splitext(filename)[0] + '.png'
            png_path = os.path.join(output_dir, png_filename)

            with image.open(bmp_path) as img:
                img.save(png_path, format='png')

            print(f'转换完成: {filename} -> {png_filename}')

if __name__ == '__main__':
    convert_bmp_to_png('图片文件夹路径')

注意两个细节:我用了 filename.lower().endswith('.bmp'),就是为了兼容 .bmp、.bmp 这种大小写不一的文件名,windows 下扩展名大小写混乱太常见了;with 语句会自动管理文件句柄,处理几百个文件时不会出现句柄泄漏、内存占用越来越大的问题。运行方法也很简单,在命令行进入脚本所在目录,执行 python bmp_to_png.py。

2.3 参数说明与进阶调整,压缩级别怎么选

这个脚本看着简单,其实 img.save 里有几个参数值得展开说说。核心的两个是 optimize 和 compress_level:

img.save(png_path, format='png', optimize=true, compress_level=9)

optimize=true 会让 pillow 在写入前多花一点时间尝试更优的压缩策略,实测对纯色区域多的图,体积能再小 10% 左右,代价是转换速度慢一些。compress_level 是 0 到 9 的整数,9 表示压缩最狠、速度最慢,0 表示完全不压缩。对大批量转换,5 到 7 是性价比比较高的区间,压缩率跟 9 差不了太多,但速度快一大截。

我自己处理那批工程图的时候,用的是 compress_level=7 加 optimize=true,转换时间平均每张 0.3 秒,一千张图也就五分钟出头,体积从平均 6mb 压到 1.2mb 左右,效果非常理想。如果转换后发现某些特殊文件体积还是偏大,再单独挑出来用 compress_level=9 重转一次,没必要全员跑满压缩。

还有一个容易忽略的点:原图的色彩模式会影响输出。如果原图是带透明信息的 32 位 bmp,直接 save 成 png 会保留 alpha 通道;如果原图是普通的 24 位 bmp,存成 png 会是 rgb 模式,没有透明通道。这两个状态都是正常行为,不需要额外处理。

3. 方法二:递归处理子文件夹,自动保留目录结构

3.1 os.walk 遍历所有子目录,一次扫完

实际工作中,bmp 文件往往分布在好多层子目录里,比如按照项目名称、归档日期、图号分了十几层。上面那个脚本只处理单层目录,遇到嵌套目录就得自己手动一层层跑,很蠢。这时最靠谱的办法是用 os.walk,它会递归遍历指定根目录下的所有子目录,把每个目录里的文件都找出来,你只需要在循环里写处理逻辑。

我 日常用的是这个版本,输出目录结构和输入目录一一对应,转换完不会打乱原有的文件组织方式。这个保留结构的功能在归档类项目里特别重要,因为后续还要按原路径把文件映射回业务系统:

import os
from pil import image

def batch_convert(src_root, dst_root):
    for dirpath, dirnames, filenames in os.walk(src_root):
        relative_path = os.path.relpath(dirpath, src_root)
        target_dir = os.path.join(dst_root, relative_path)
        os.makedirs(target_dir, exist_ok=true)

        for filename in filenames:
            if filename.lower().endswith('.bmp'):
                src_file = os.path.join(dirpath, filename)
                dst_file = os.path.join(target_dir, os.path.splitext(filename)[0] + '.png')

                with image.open(src_file) as img:
                    img.save(dst_file, format='png', optimize=true, compress_level=7)

                print(f'转换完成: {src_file} -> {dst_file}')

if __name__ == '__main__':
    batch_convert('原始目录', '输出目录')

这段代码的核心逻辑在 os.walk 返回的三个值:dirpath 是当前目录路径,dirnames 是当前目录下所有子目录列表,filenames 是当前目录下所有文件列表。用 os.path.relpath 算出当前目录相对于根目录的路径,再拼到输出目录下,就能保持整个目录树的结构不变。

3.2 windows 下的中文、空格、特殊字符路径怎么处理

这里要特别提醒一个坑:windows 系统下,文件名或者路径里有中文、空格、特殊符号,手工拼接路径字符串经常会出问题。比如你把路径写成 src_root + "/" + filename,一旦目录名里有空格,某些库就会解析失败。上面的脚本里我用的全是 os.path.join,就是为了避免手工拼字符串踩到分隔符的坑。os.path.join 会根据操作系统自动选择正确的分隔符,windows 下用反斜杠,linux 下用正斜杠,跨平台跑都不会出错。

另外,如果原始文件名里带括号、井号这类不规范的字符,比如“图号(1).bmp”,用 os.path.splitext 去掉扩展名之后再拼 .png,是安全的,不会破坏文件名其他部分。但要注意一个小陷阱:如果文件名里有多个点号,比如“2024.06.15 图纸.bmp”,splitext 只会去掉最后一个点号后面的部分,得到“2024.06.15 图纸.png”。这是符合预期的,但如果你以为它会去掉所有点号,就理解错了,做文件名处理逻辑时别踩这个认知偏差。

还有一点经验之谈:跑批量脚本之前,先找个包含中文路径、空格路径的测试目录跑一遍,确认没问题再上全量数据。我第一次跑这种脚本就是在客户的一台中文用户名电脑上,输出目录默认放在用户目录下,路径里全是中文,好在用了 os.path.join,没出问题,但那次之后我就养成了先小批量试跑的习惯。

4. 方法三:irfanview 免费工具,图形界面批量转换

4.1 四个步骤完成批量转换

如果你不想碰代码,那 irfanview 是 windows 上最顺手的选择。这个小而美的看图软件体积只有几 mb,官方提供的单文件绿色版不装也能跑,个人和家庭用途完全免费,商用场景则需要留意授权条款。别看它界面老,核心的批量转换功能到今天依然好用,稳定性极高。

它的批量转换入口在菜单栏的 file 菜单下,选择 batch conversion,快捷键是 f7。操作分四步:

  1. 在 batch conversion 窗口左侧,把要转换的 bmp 文件添加进去。可以按 ctrl 多选文件,也可以按目录一次性加入。
  2. 在窗口下方的 output directory 指定输出目录,如果不指定,默认会输出到原文件所在目录。
  3. 在 output format 下拉框里选 png。
  4. 点 start batch 按钮,几秒到几十秒就跑完,完成后会有提示。

这里有个细节需要注意:irfanview 的批量转换默认会拿原文件名作为输出文件名,只是把扩展名改成 .png。如果你的 bmp 文件名特别长,或者想批量改成有规则的编号,可以勾选页面下方的 use advanced options,弹出的设置界面里可以改文件名生成规则,比如加前缀、加自增序号,对后续归集文件非常方便。

4.2 转换同时顺手做三件事

irfanview 的批量转换窗口左边有个 set advanced options 按钮,点进去能在转格式的同时做很多附加处理,我平时最常用的有三个。

第一,统一输出尺寸。在 resize 相关设置里输入目标宽高,比如把最长边统一缩到 1920 像素,这样输出到网页端的图片尺寸一致,不会出现有的图巨宽有的图巨窄的问题。转格式和缩放一次完成,省得再跑一遍批量缩放脚本。

第二,统一裁边或加白边。如果你的原图是扫描件,四周有一圈黑边,可以在高级选项里设置自动裁剪,也可以设置固定边距。这个对制图类素材特别有用。我之前遇到过一个需求,用户从 visio 导出 png 时发现四周留白很小,图贴到文档里显得很挤,类似这种边距问题,用 irfanview 批量加边距就能统一处理,不用回到 visio 重新导。

第三,转换时顺便设置 png 的压缩参数。点高级选项之后可以看到输出格式相关的配置,irfanview 支持设置 png 压缩级别。追求小体积就拉高压缩,追求速度就保持默认,这在你需要严格控制输出体积时很有用。

唯一需要适应的地方是界面比较古早,而且默认是英文菜单,英文不好的朋友可以先找个中文语言包或者对照翻译用,功能都在,熟悉之后就很快。

5. 方法四:xnconvert 跨平台批量转换,对零基础最友好

5.1 添加文件和输出设置

xnconvert 是 xnview 作者出的另一款批量处理工具,界面比 irfanview 现代,支持 windows、macos、linux 三个平台,而且操作逻辑非常直白,对零基础用户相当友好。它的思路跟 irfanview 类似,相当于把“输入-处理-输出”三步拆成了非常清晰的标签页,哪个环节该干嘛一目了然,不会让新手迷路。

转换流程大约是:

  1. 打开 xnconvert,左侧 input 标签页,把 bmp 文件拖进去,或者点 add files 按目录添加。支持按住 shift 连选、ctrl 多选,也支持批量拖入整个文件夹。
  2. 中间的 actions 标签页默认是空的,如果只是想转换格式,不需要在这里加任何动作。
  3. 右侧 output 标签页,在 format 下拉框里选择 png,在 folder 里指定输出目录。
  4. 点最下方的 convert 按钮,进入队列执行,窗口下方能看到进度条和当前处理到的文件名。

在 output 标签页的 format 旁边有个设置小图标,点开之后可以看到 png 的高级参数,包括压缩级别、隔行扫描、颜色位数等。想控制文件大小,就在这里调压缩级别,一般选 6 或 7 比较均衡,兼顾速度和体积。如果输出用于网页,建议关掉隔行扫描,能减小文件体积,加载速度也更快。

5.2 转换时顺手的扩展玩法

xnconvert 的 actions 标签页其实是它的杀手锏。它可以在转换格式之前批量叠加各种处理,比如加边框、改尺寸、打水印、自动色阶、旋转、锐化,这些动作可以按顺序排队,一次跑完一整条流水线。相当于把原本要在 ps 里做的多步操作,变成了一次批量执行。

我之前帮同事处理一批老图纸扫描件时,就是先在 actions 里添加了“自动色阶”来提亮发黄的底图,又加了一步“缩放”统一宽度,最后输出 png。原来一张张在 ps 里处理可能要几分钟的活,用 xnconvert 全自动跑完,中间完全不人工介入。对于没有编程基础的运营和设计师来说,这个工具基本就是“可视化版 python”,把批量脚本做的事全搬到了图形界面上。

还有一点,xnconvert 支持输出时给文件名加前缀、后缀,也可以按模板取名,比如 img_{index}.png 这种带序号的格式。命名规则用下拉选项直接选就行,不用记忆复杂语法,比很多命令行工具都亲民。

6. 方法五:imagemagick 命令行,一条命令处理几千张

6.1 单条命令批量转换,速度极快

如果你已经装了 imagemagick,或者愿意装一次,那批量转换可以简化到一条命令。imagemagick 是图像处理界的瑞士军刀,提供了很多命令行工具,批量转换最常用的是 mogrify。convert 适合单张处理,mogrify 专门为批量场景设计,直接在原目录里改文件或者输出到别的目录,用法非常直接。

最简单的用法:

mogrify -format png *.bmp

一行代码,把当前目录下所有 bmp 转成 png。mogrify 默认会把输出的 png 放在当前目录,原 bmp 文件保留不动,不会覆盖原文件,这一点可以放心。这应该是整篇文章里最快的批量转换方案,写命令的时间比准备工作还短。

想把输出放到另一个目录,加一个 -path 参数:

mogrify -path output_folder -format png *.bmp

想调整压缩级别,加 -quality 参数。这个参数在 png 输出时不是 jpeg 那种“质量百分比”,而是表示压缩级别 0 到 100,值越低压缩越强、耗时越长,一般设 80 左右比较均衡:

mogrify -path output_folder -format png -quality 80 *.bmp

6.2 进阶玩法:批量缩放、并行处理、批处理脚本

imagemagick 的强大之处在于,它可以把格式转换和图像处理合并成一条命令,不需要中间文件。比如把 bmp 转成 png 的同时,统一缩放到最长边 1920:

mogrify -path output_folder -resize 1920x1920 -format png *.bmp

如果你的文件数量特别大,比如上万张,单线程处理会比较吃力,在 linux 或 macos 下可以配合 xargs 做并行处理,把任务拆到多个核上,速度能快好几倍。windows 下也可以用 powershell 或者直接开多个命令行窗口,每个窗口处理一部分文件,效果类似。

find . -name "*.bmp" -print0 | xargs -0 -p 8 -i {} convert {} {}.png

更严谨的做法是写成一个脚本文件,把目录设置、输出路径、压缩级别都放在前面,方便下次复用。命令行方式最大的优势是可复制、可版本管理,把命令扔进文档里,下次执行一模一样,不会像 gui 操作那样每次点来点去容易漏步骤。

6.3 五种方法怎么选

聊完五种方法,我把它们放一起做了个对比,方便你根据自己情况直接挑:

方法上手难度适合场景最大优点注意点
python + pillow中等批量大、要求定制化处理、需要保留目录结构可完全脚本化、参数可控需要装 python 环境
递归脚本(os.walk)中等子目录多层嵌套的项目归档自动保留目录层级代码稍长
irfanviewwindows 临时批量转换轻量、启动快界面老旧、英文菜单
xnconvert极低零基础用户、需要界面操作跨平台、可叠加滤镜批量非常大会稍慢
imagemagick较低服务器、命令行环境、海量文件一条命令搞定需安装环境

我的选择思路是:手上有 python 环境、要处理几百上千张图、还可能要定制处理的,直接上脚本;临时几张小图,irfanview 拖进去点两下最省事;教非技术同事自己做,就推 xnconvert;上了服务器或者要处理超大批量,imagemagick 永远是第一选择。

7. 我踩过的坑:常见问题与排查实录

7.1 转出来的 png 背景是黑色的

这是批量转换里最常见的问题之一。部分 32 位 bmp 文件里的 alpha 通道数据质量很差,很多扫描软件和制图软件写入 alpha 时根本没打算让下游软件读取。pillow 读取这种文件时,会把 alpha 通道原样搬到 png 里,但显示的时候因为 alpha 值信息混乱,看起来就像黑色背景。

解决办法是转换时强制把透明通道处理掉,改成白色或纯色背景。在脚本里用一段判断逻辑,检测到 rgba 模式就合成到白底上:

from pil import image

with image.open(src_file) as img:
    if img.mode == 'rgba':
        background = image.new('rgb', img.size, (255, 255, 255))
        background.paste(img, mask=img.split()[3])
        background.save(dst_file, format='png')
    else:
        img.save(dst_file, format='png')

如果你的用途不需要透明,直接 rgb 模式输出最稳,不会有任何显示层面的意外。如果是需要透明底图,那就得先确认原 bmp 的 alpha 通道质量是否可靠,别转完交付了才发现白底黑底的问题。

7.2 转换后文件反而变大

偶尔会遇到 bmp 转成 png 之后文件比原来还大的情况,别慌。这通常说明原图的颜色信息非常杂乱,几乎找不到可压缩的重复数据,比如扫描的彩色照片、噪点很多的传感器图。还有一种可能,是你用了过高的颜色位数输出,比如把本是 8 位灰度图的内容存成了 32 位 rgba png,那体积必然暴涨。

先检查原图的色彩模式,在 python 里跑一行就能看到:

from pil import image
img = image.open('xxx.bmp')
print(img.mode)

如果是 l 模式,说明是灰度图,保存 png 时默认就是灰度 png,体积很小。如果原图是 rgb 但内容其实是黑白线稿,可以先转成灰度再保存,文件能小很多。另外,注意检查输出的 png 是否不小心带了多余的 alpha 通道,对没有透明要求的图来说,那是纯浪费空间。

7.3 png 在文件夹里不显示缩略图

这个问题和格式转换本身关系不大,但确实不少人转换完发现 windows 文件资源管理器里 png 不显示缩略图,只显示白色 图标或者默认图标,让人误以为转换失败。原因通常是系统缩略图缓存损坏,或者注册表里 png 缩略图预览被第三方软件禁用了。

最简单的手段是重新生成缩略图缓存。在文件资源管理器里右键图片所在文件夹,进入属性-自定义-优化此文件夹,把文件夹类型改成“图片”,同时在资源管理器的“查看”选项里确保“始终显示图标,从不显示缩略图”没有被勾选。如果还不行,清理一下系统缩略图缓存,重启资源管理器之后再看。大多数情况下这个操作就能恢复正常。

7.4 快速判断文件是不是伪装成 bmp 的别格式

有时候你拿到的文件扩展名是 .bmp,但实际内容完全不是位图,这种情况在项目交付里并不少见,尤其是从老旧系统或者第三方接口导出的数据。判断方法非常简单,用十六进制编辑器打开文件头看前几个字节:bmp 格式的头两个字节固定是 42 4d,对应 ascii 码就是 bm;png 的头八个字节则是 89 50 4e 47 0d 0a 1a 0a,也是固定的。

如果转换脚本里发现某个文件读取报错,先别急着改脚本,用这个方法检查一下文件头,八成是格式名不副实。我曾经收到过一堆“.bmp”,结果里面混着好几个 jpeg 和 gif,脚本咔咔报错,检查完哭笑不得。这个习惯帮我省下了不少排查时间,遇到文件打不开先看文件头,比瞎调代码靠谱得多。

7.5 输出图标文件时怎么控制体积

最后说一个非常实用的场景。现在不少后台注册、小程序上架、开放平台审核,都要求上传“512x512 像素、200kb 以内的 png 直角图标”。如果你手头只有一个几千像素的 bmp 大图,直接缩小后保存,往往会发现体积还是超 200kb。

推荐的处理思路是:先把图缩到 512x512,保存 png 时把压缩级别拉到最高,一般简单图形就能压到 200kb 以内。如果还压不下来,检查图像内容——实心色块、简单线条、纯色背景压缩率非常高;如果是噪点很多的照片类内容,png 在 512x512 下也可能超过 200kb,那就需要考虑换 jpeg 或者重新设计素材,而不是继续硬压。做前端上架、小程序开发的应该深有体会,这类审核尺寸要求卡得严,前期没算好,后期反复改很浪费时间。

最后分享一个我的个人习惯:日常在命令行环境里干活,我优先用 python 脚本处理,因为控制力最强,可以顺手加缩放、压缩级别、目录结构保留这些逻辑;临时接到小批量需求,直接开 irfanview 拖进去点两下;给没有代码基础的同事写操作说明时,我会推荐 xnconvert,三步就能教会。5 种方法没有绝对的优劣,只有场景适配度的差别。你可以抽个项目里的小批量数据,把这几种方案都跑一遍,找到自己最顺手的那套流程,下次再遇到批量图转换,就不用像我当年一样傻乎乎点一下午了。如果你转换时遇到了文里没提到的怪问题,也可以按第 7 节的排查顺序,从文件头、色彩模式、输出参数三个方向逐个排查,大部分问题都能定位。

到此这篇关于python实现bmp批量转png的5种实用方法 的文章就介绍到这了,更多相关python bmp批量转png内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com