如何在 C++ 中覆盖图像文件

问题描述 投票:0回答:0

我有一个外部流,我读过。图像数据无法更改,它来自智能身份证。

我制作了一个程序,它读取以 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 提前致谢。

c++ image fstream
© www.soinside.com 2019 - 2024. All rights reserved.