一点一点地复制图像 C++

Copy an image bit by bit C++

我最近找到了一些关于 C++ 文件打开模式的文档,并使用 ios_base::binary 尝试打开图像 (.JPG),逐位读取,然后将它们写入单独的文件 ( ofstream) 扩展名为 .JPG。问题是我在尝试打开新创建的图像时遇到错误:Error interpreting JPEG file。有帮助吗?

code:

int main()
{
    char a;
    std::ifstream fin {"image.jpg", std::ios_base::binary};
    std::ofstream fout {"uzicopied.jpg", std::ios_base::binary};
    while (true)
    {
        if (!(fin >> a) || !fin) break;
        fout << a;
    }
    return 0;
}

fin >> a 跳过空格,即使文件以二进制模式打开也是如此。请改用 get。您还可以简化 while 循环。

char a;
while (fin.get(a))
    fout.put(a);   // fout << a; would also work