【发布时间】:2020-04-03 22:32:29
【问题描述】:
我正在使用 c++ 中的图像,我有一个捕获图像的程序,结果数据是这样的
然后当我在其他文件夹中写入图像时,我得到这个结果:
CFileException ex;
CFile file;
file.Open((LPCTSTR)"test", CFile::modeCreate | CFile::modeWrite | CFile::modeNoTruncate, &ex);
file.Write(image.puc_image, lenOfImage)
当我打开带有注释的文件时。
所以基本上我想操作写入并转换为 base 64 的数据,然后发送到 API。 但是在读取文件时我从未看到所有数据。所以base64的约定不能正确输出数据。
【问题讨论】:
-
您可以使用调试器查看存储图像的内存吗?从您的问题来看,它看起来是
image.puc_image?这将向您显示原始字节。 -
不清楚你在问什么。如果要检查字节,请使用二进制查看器(请参阅在 VS IDE 中打开方式)。如果您想读取图像的像素并对其进行操作,则需要做很多工作。
-
您的“结果图像缓冲区”是否可能被打印为 C 字符串?如果是这样,即使它可能包含 N 个字节的数据,您也只会看到第一个零 (NUL, '\0') 字节
-
(LPCTSTR)"test"完成一件事,而且只完成一件事:它使编译器静音,否则会在代码中调用错误的确切位置。 -
您还没有 Base64 代码吗?您能否将图像和写入的文件显示为十六进制显示(例如,使用十六进制编辑器而不是记事本)?您希望具体展示什么?开头是一样的!
标签: c++ c++11 visual-c++ mfc c++14