繁体   English   中英

需要从png文件读取数据并将其保存到新文件中,怎么办? C ++

[英]Need to read data from png file and save it to the new one, how? C++

我尝试从一个PNG文件中读取数据,并希望将此数据写入新文件并保存。 我做这样的事情:

FILE *fp = fopen("C:\\dev\\1.png", "rb");
fseek(fp, 0, SEEK_END);
long size = ftell(fp);
rewind(fp);
char *buffer = (char*)malloc(sizeof(char)*size);
size_t result = fread(buffer, 1, size, fp);
FILE *tmpf = fopen("C:\\dev\\1_1.png", "wb");
fputs(buffer, tmpf);
fflush(tmpf);
fclose(tmpf);

我有问题,第二个文件仅包含其内容,仅在于:‰PNG SUB

在调试中,我检查了long size = 652521,并且size_t结果具有相同的大小...不明白,为什么我不能将所有数据写入第二个文件...

不要使用fputs使用fwrite - fputs用于字符串,它将在第一个零字节处终止。

更改:

fputs(buffer, tmpf);

至:

fwrite(buffer, 1, size, tmpf);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM