C ++导入和重命名/重新保存图像

时间:2010-06-29 03:15:34

标签: c++ image import rename

问候所有, 我现在是一名正在崛起的二年级学生(CS专业),今年夏天,我正在尝试自学C ++(我的学校代码主要是Java)。 我已经阅读了许多关于C ++的指南,并通过ofstream,保存和编辑.txt文件获得了部分内容。 现在,我感兴趣的是简单地导入图像(jpeg,位图,不是很重要)并重命名上述图像。 我用谷歌搜索,周围问但无济于事。 如果没有外部库的下载,这个过程是否可行(我敢于CImg)? 任何关于如何加快我的目标的提示或技巧将非常感激

3 个答案:

答案 0 :(得分:2)

重命名图像通常与重命名任何其他文件大致相同。

如果您想要做的更多,您还可以更改IPTC metadata的标题字段中的数据。这需要JPEG解码,或类似的东西 - 您需要足够好地了解文件格式以便能够找到IPTC元数据,并且足够好地研究IPTC格式以找到Title字段,但这就是全部。确切地说,你将如何获得IPTC元数据会有所不同 - 导航TIFF(例如)只需要相当数量的代码。

答案 1 :(得分:1)

当您说“重命名上述图像”时,您的意思是更改图像文件中的元数据,还是只更改文件名?如果您指的是元数据,则需要了解文件格式或使用了解文件格式的库。每种类型的图像文件都会有所不同。如果您基本上只想复制文件,则可以将内容从一个文件流流式传输到另一个文件流,或使用文件系统API。

std::ifstream infs("input.txt", std::ios::binary);
std::ofstream outfs("output.txt", std::ios::binary);
outfs << insfs.rdbuf();

文件系统API的一个示例是Win32上的CopyFile。

答案 2 :(得分:0)

没有库可能 - 你只需要图像规格和'C',问题是为什么?

Targa或bmp可能是最简单的,它只是一个标题,图像数据是二进制值块。
Gif,jpeg和png更复杂 - 数据被压缩