base64字符串转为图片 - Base64ToImage
函数简介
将Base64编码的图片数据转换为图片对象。此函数可以将Base64格式的图片数据直接转换为内存中的图片对象,常用于网络传输的图片数据处理、剪贴板图片数据处理等场景。支持常见的图片格式如PNG、JPG、BMP等。
接口名称
Base64ToImage
DLL调用
long Base64ToImage(long ola, string base64_str)
参数定义:
ola
(长整型数): OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。base64_str
(字符串): Base64编码的图片数据字符串,支持常见的图片格式如PNG、JPG、BMP等。
示例:
// 将Base64字符串转换为图片
const char* base64_data = "iVBORw0KGgoAAAANSUhEUgAA..."; // Base64图片数据
long image = Base64ToImage(ola, base64_data);
if (image != 0) {
printf("Base64数据转换为图片成功,句柄:%ld\n", image);
// 获取转换后图片的大小
int width, height;
GetImageSize(ola, image, &width, &height);
printf("图片大小:%d x %d\n", width, height);
// 保存为文件
SaveImageFromPtr(ola, image, "D:\\test\\from_base64.png");
// 使用完后释放图片内存
FreeImagePtr(ola, image);
} else {
printf("Base64数据转换失败\n");
}
// 图片转Base64后再转回图片
long src_image = LoadImage(ola, "D:\\test\\sample.png");
if (src_image != 0) {
// 转换为Base64
char* base64_str = ImageToBase64(ola, src_image);
if (base64_str != NULL) {
// 将Base64转回图片
long new_image = Base64ToImage(ola, base64_str);
if (new_image != 0) {
printf("图片转换来回成功\n");
FreeImagePtr(ola, new_image);
}
// 释放Base64字符串内存
FreeStringPtr(base64_str);
}
FreeImagePtr(ola, src_image);
}
COM调用
long Base64ToImage(string base64_str)
参数定义:
base64_str
(字符串): Base64编码的图片数据字符串,支持常见的图片格式如PNG、JPG、BMP等。
示例:
# 将Base64字符串转换为图片
base64_data = "iVBORw0KGgoAAAANSUhEUgAA..." # Base64图片数据
image = ola.Base64ToImage(base64_data)
if image != 0:
messagebox("Base64数据转换为图片成功,句柄:" + str(image))
# 获取转换后图片的大小
width = height = 0
ola.GetImageSize(image, width, height)
messagebox(f"图片大小:{width} x {height}")
# 保存为文件
ola.SaveImageFromPtr(image, "D:\\test\\from_base64.png")
# 使用完后释放图片内存
ola.FreeImagePtr(image)
else:
messagebox("Base64数据转换失败")
# 图片转Base64后再转回图片
src_image = ola.LoadImage("D:\\test\\sample.png")
if src_image != 0:
# 转换为Base64
base64_str = ola.ImageToBase64(src_image)
if base64_str:
# 将Base64转回图片
new_image = ola.Base64ToImage(base64_str)
if new_image != 0:
messagebox("图片转换来回成功")
ola.FreeImagePtr(new_image)
ola.FreeImagePtr(src_image)
返回值
长整型数:
- 0: 转换失败
- 非0: 转换成功,返回图片句柄
注意事项
- Base64字符串必须是有效的图片数据编码,否则转换会失败
- 支持的图片格式包括:PNG、JPG、BMP等常见格式
- 转换成功后必须使用 FreeImagePtr 释放图片内存
- 如果需要将图片转换为Base64字符串,可以使用 ImageToBase64 函数
- Base64字符串可能较长,注意内存使用,建议对大图片进行适当压缩后再转换