图片格式转换
函数名:img_图片转换 / img_Conv
功能描述
实现多种图片格式之间的转换,支持 BMP、JPG、GIF、TIFF、PNG 五种格式互转。可选保留 PNG 透明通道,并支持返回转换后图片的 Base64 编码字符串,便于嵌入 HTML、数据库或 API。
会员等级:🟢 免费版(Free)
语法
excel
=img_图片转换(图片路径, 转换格式(1=BMP 2=JPG 3=GIF 4=TIFF 5=PNG), 保存路径, 含透明色, 是否返回转换后的base64)参数
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| 图片路径 | String | 是 | — | 原始图片文件路径 |
| 转换格式(1=BMP 2=JPG 3=GIF 4=TIFF 5=PNG) | Integer | 是 | — | 目标格式代码:1=BMP, 2=JPG, 3=GIF, 4=TIFF, 5=PNG |
| 保存路径 | String | 否 | "" | 转换后图片保存路径,为空则不保存到文件 |
| 含透明色 | Boolean | 否 | FALSE | 是否保留透明通道,仅 PNG 格式有效 |
| 是否返回转换后的base64 | Boolean | 否 | FALSE | 是否返回转换后的 Base64 字符串,默认返回状态文本 |
返回值
String — 转换成功时返回"转换完成"(未启用 Base64)或 Base64 编码字符串(启用 Base64);失败时返回错误信息。
使用示例
示例一:JPG 转 PNG 并保存
将 JPG 图片转换为 PNG 格式并保存到指定路径。
公式:
excel
=img_图片转换("C:\pic\photo.jpg", 5, "C:\pic\photo_converted.png")结果:
转换完成示例二:返回 Base64 编码
将 GIF 图片转换为 BMP 格式并返回 Base64 编码,便于直接嵌入其他系统。
公式:
excel
=img_图片转换("C:\pic\image.gif", 1, "", FALSE, TRUE)结果:
Qk1aeAHA...(Base64 编码字符串)示例三:保留透明通道
转换 PNG 图片时保持透明背景,仅对 PNG 目标格式有效。
公式:
excel
=img_图片转换("C:\pic\transparent.png", 5, "C:\pic\transparent_out.png", TRUE)结果:
转换完成技术说明
格式映射
| 代码 | 格式 | 说明 |
|---|---|---|
| 1 | BMP | Windows 位图 |
| 2 | JPG | JPEG 格式(有损压缩) |
| 3 | GIF | GIF 格式(支持动画) |
| 4 | TIFF | TIFF 格式(无损存储) |
| 5 | PNG | PNG 格式(支持透明通道) |
透明通道处理
当目标格式为 PNG 且 含透明色 为 TRUE 时,函数会创建一个新的 Bitmap,先以透明色清空画布,再绘制原图,从而保留透明效果。其他格式或不启用此参数时,直接保存原图。
实现依赖
基于 .NET System.Drawing 库实现图片加载与格式转换,兼容 WPS 与 Excel 环境。
错误处理
| 错误场景 | 返回值 |
|---|---|
| 输入文件不存在 | 错误:文件不存在 |
| 格式代码不在 1-5 范围内 | 错误:不支持的格式代码 |
| 保存路径目录不存在 | 自动创建目录后保存 |
| 其他异常 | 转换失败: {异常信息} |