码迷,mamicode.com
首页 > 其他好文 > 详细

fread,fopen二进制打开图片并复制图片

时间:2020-05-17 19:12:32      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:技术   格式   打开   数据   mamicode   src   har   sig   lib   

思路:

    1. 使用二进制的格式打开我们要读取的图片“./temp.png”,注意读取的格式“rb”,b:二进制
    2. 接着就可以创建并以二进制的格式打开我们要写入到的文件当中“\.png”,注意打开格式”wb“。
    3. 接着我们用fseek来测量这个图片一共有多少个字节:
      1. 我们可以把光标设置到文件的尾部。
      2. 接着使用ftell()函数来获取长度length。
      3. 注意,由于我们还要读取文件,所以要把光标设置回文件的开头。
    4. 接着使用fread读取:
      1. 每次读取BYTE为要读取的每个元素的大小,以字节为单位。
      2. length:这是元素的个数,每个元素的大小为BYTE 字节。
      3. 因为我使用的是ubuntu,所以没有BYTE这个数据类型,所以需要自己define。
    5. 接着就是fwrite,和read参数大致意思一样。
    6. 最后:注意close你已经打开的文件
    7. 看一下我成功之后的结果:

      技术图片
    8.          

          技术图片

 

     8. 图片这里就不展示了,当然是成功的。

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 #define BYTE unsigned char
 5 int main(){
 6     BYTE *buffer;
 7 
 8     FILE *pixmap = fopen("./temp.png","rb");
 9 
10     fseek(pixmap,0, SEEK_END);
11 
12     
13     int length = ftell(pixmap);//读取图片的大小长度
14     FILE *fp = fopen("./t.png","wb");
15 
16     buffer = (BYTE *)malloc(length*sizeof(BYTE));
17 
18     fseek(pixmap, 0, SEEK_SET);//把光标设置到文件的开头
19 
20     while(0 !=fread(buffer,sizeof(BYTE),length,pixmap))
21     {
22             printf("%s\n----%ld",buffer,strlen(buffer));
23             fwrite(buffer,sizeof(BYTE),length,fp);
24     }
25 
26     fclose(pixmap);
27     fclose(fp);
28 }

 

fread,fopen二进制打开图片并复制图片

标签:技术   格式   打开   数据   mamicode   src   har   sig   lib   

原文地址:https://www.cnblogs.com/jianmoxiansheng-Guo/p/12906309.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!