我有一个外部流,我读过。图像数据无法更改,它来自智能身份证。
我制作了一个程序,它读取以 jpg 形式出现的所述图像数据并从中创建文件。
可以,但是如果插入另一张卡就不能覆盖
这是我的代码:
fstream avatar;
avatar.open("avatar.jpg", std::ios::app | std::ios::binary);
avatar.write(reinterpret_cast<char*>(&personPortrait.portrait), personPortrait.portraitSize); // or with recent C++: reinterpret_cast<std::byte*>
avatar.close();
此代码仅适用于我的情况。话虽如此,它完全符合我的要求。每个后续读取流都需要覆盖先前放置的图像。 interwebz 中的大多数示例都是针对文本文件的。
personPortrait.portrait
是实际图像数据和扩展名,如果我测试它的类型,它说它是 char 数组,而 personPortrait.portraitSize
是它的大小(以字节为单位)。这就是我的全部。
我试过使用
std::ios::trunc
,但不行。
如果我尝试使用 remove
彻底删除它,它会禁止我。
如果有任何帮助,图像文件与.exe
位于同一目录中。
根据 273 编辑:如果存在于目录中,则需要覆盖图像。如果插入并读取另一张卡,现在不会保存新添加的图像。
Mucho 提前致谢。