【问题标题】:How to see all bytes of a raw image如何查看原始图像的所有字节
【发布时间】: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


【解决方案1】:

请尝试使用CFile::typeBinary

如果文件以文本模式写入,换行可能会被破坏。

【讨论】:

  • 谢谢,我会试试这个。几个小时后
猜你喜欢
  • 2010-09-25
  • 1970-01-01
  • 2010-12-25
  • 2012-09-09
  • 1970-01-01
  • 1970-01-01
  • 2018-07-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多