FreeImage - 从base64编码的char中读取*

时间:2013-09-10 10:33:46

标签: freeimage

我有一个base64编码的字符串(char []),代表一个PNG图像。

我想从该字符串创建一个FIBITMAP - 实现此目的的最简单方法是什么?

1 个答案:

答案 0 :(得分:1)

根据documentation,以下代码应该执行以下任务:

/* 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提供实现(或修改函数调用以匹配现有实现)。