将图像保存为c ++源代码是否可行?
#include <string>
int main(){
std::string = "<full code of a .png for example>";
//...
}
问题在于图像有很多像'\'的字符......并且从十六进制编辑器复制并粘贴它会产生错误。
我不想从.png文件加载图像,我想直接将图像代码放到字符串中。
答案 0 :(得分:3)
这通常通过将图像保存为base64编码的字符串来完成。它需要更多的字节来存储,但具有成为字符串的优点。您可以使用online tool将图像转换为base64编码的字符串,然后将其复制到源文件中。
string base64 =“copy encoded string here”;
有关如何将该字符串解码为图像的更多详细信息,请参阅this question。希望这会有所帮助。
答案 1 :(得分:1)
有像xxd这样的工具会在二进制输入文件的头文件中生成一个字符数组,供您包含在项目中,请参阅this answer。这个用例通常更适合使用字符串,因为您不必担心base64编码来处理特殊字符。
答案 2 :(得分:0)
如果使用Windows,请将图像添加到资源中。控制台应用程序也可以有资源文件。然后只需从资源加载图像。
另一种选择是在映像上使用Base64编码,将字符串复制到源代码中,在运行时重新编译和解码字符串。