我有一个表示 PNG 图像的 base64 编码字符串 (char[])。
我想从该字符串创建一个 FIBITMAP - 实现这一目标的最简单方法是什么?
根据文档,类似以下代码的内容应该完成任务:
/* Needed here: data -> The string you want to read
len -> The length of the string */
char *decoded;
size_t decoded_len;
base64_decode(data, len, &decoded, &decoded_len); /* See note 1 below! */
FIMEMORY *mem = FreeImage_OpenMemory(decoded, decoded_len);
FREE_IMAGE_FORMAT fif = FreeImage_GetFileTypeFromMemory(mem, 0);
FIBITMAP *result = FreeImage_LoadFromMemory(fif, mem, 0);
/* [...] */
FreeImage_Unload(result);
FreeImage_CloseMemory(mem);
注 1:FreeImage 似乎无法直接读取 Base64 编码的数据。因此,您要使用的数据在此处被解码。请注意,您必须提供一个实现base64_decode
(或修改函数调用以匹配现有实现)。