OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2821|回复: 4

如何以2进制读取JPG图片

[复制链接]

4

主题

20

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2014-2-24
在线时间
10 小时
发表于 2016-4-5 08:32:47 | 显示全部楼层 |阅读模式
39金钱
现想将SD卡中图片读出来图片大小为2k,FATFS *fs[2];                   
FIL *file;                         
FIL *ftemp;                         
UINT br,bw;                       
FILINFO fileinfo;
DIR dir;                         

u8 *fatbuf;       

               

f_open (file,"0:/PHOTO/PIC00001.JPG", FA_READ);
size1=f_size(file);
f_read (file,fatbuf,size1,&bw);
f_close(file);



但是现在问题有两个
1、如何才能以2进制读取图片,如C语言中读取文件后面会有一个读取方式,以什么方式打开文件,可是系统文件里面没有找到读取方式。
2、如何才能解决,150K文件一次性读取或者分批次读取的问题,读取方式同上。
求高手给个思路,我想了好久,怎么也没有弄好。因为服务器只能解读2进制JPG格式的文件。

最佳答案

查看完整内容[请看2#楼]

1,你存储的时候,是什么格式,读取的时候就是什么格式.读取的时候是二进制,你存放在u8数组里面,自己去一位位读就OK了. 2,一次读一点,分多次多.这问题不多解释了,简单的不行.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-4-5 08:32:48 | 显示全部楼层
1,你存储的时候,是什么格式,读取的时候就是什么格式.读取的时候是二进制,你存放在u8数组里面,自己去一位位读就OK了. 2,一次读一点,分多次多.这问题不多解释了,简单的不行.
回复

使用道具 举报

4

主题

20

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2014-2-24
在线时间
10 小时
 楼主| 发表于 2016-4-7 08:25:45 | 显示全部楼层
正点原子 发表于 2016-4-5 08:32
1,你存储的时候,是什么格式,读取的时候就是什么格式.读取的时候是二进制,你存放在u8数组里面,自己去一位位 ...
第一个问题明白了,可是第二个问题还是有些不懂,求指教!!!
定义:
FIL *file;
UINT bw;
//14-15-15-19         每一句话诗的字节数
u8 huanghelou[]={"bairiyishanjin,huangheruhailiu.yuqiongqianlimu,gengshangyichenglou."};
u8 huanghelou_len=0;
u8 read_buf_huanghelou[1024];
然后将定义的一首诗写进.txt
        huanghelou_len=sizeof(huanghelou);
        f_open (file,"0:/message.txt", FA_CREATE_ALWAYS|FA_WRITE);
        f_write (file, huanghelou, huanghelou_len, &bw);
        f_close(file);
然后将诗的每一句话依次读出来并显示
        f_open (file,"0:/message.txt", FA_READ);
        f_read (file,read_buf_huanghelou,14,&bw);
        f_close(file);
        LCD_ShowString(60,400,400,16,16,read_buf_huanghelou);
问题:
只能读出第一句,下一句应该如何读?谢谢!
回复

使用道具 举报

4

主题

20

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2014-2-24
在线时间
10 小时
 楼主| 发表于 2016-4-10 11:01:50 | 显示全部楼层
第一个问题明白了,可是第二个问题还是有些不懂,求指教!!! 定义: FIL *file; UINT bw; //14-15-15-19         每一句话诗的字节数 u8 huanghelou[]={"bairiyishanjin,huangheruhailiu.yuqiongqianlimu,gengshangyichenglou."}; u8 huanghelou_len=0; u8 read_buf_huanghelou[1024]; 然后将定义的一首诗写进.txt         huanghelou_len=sizeof(huanghelou);         f_open (file,"0:/message.txt", FA_CREATE_ALWAYS|FA_WRITE);         f_write (file, huanghelou, huanghelou_len, &bw);         f_close(file); 然后将诗的每一句话依次读出来并显示         f_open (file,"0:/message.txt", FA_READ);         f_read (file,read_buf_huanghelou,14,&bw);         f_close(file);          LCD_ShowString(60,400,400,16,16,read_buf_huanghelou); 问题: 只能读出第一句,下一句应该如何读?谢谢!
回复

使用道具 举报

4

主题

20

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2014-2-24
在线时间
10 小时
 楼主| 发表于 2016-4-10 11:02:34 | 显示全部楼层
第一个问题明白了,可是第二个问题还是有些不懂,求指教!!!
定义:
FIL *file;
UINT bw;
//14-15-15-19         每一句话诗的字节数
u8 huanghelou[]={"bairiyishanjin,huangheruhailiu.yuqiongqianlimu,gengshangyichenglou."};
u8 huanghelou_len=0;
u8 read_buf_huanghelou[1024];
然后将定义的一首诗写进.txt
        huanghelou_len=sizeof(huanghelou);
        f_open (file,"0:/message.txt", FA_CREATE_ALWAYS|FA_WRITE);
        f_write (file, huanghelou, huanghelou_len, &bw);
        f_close(file);
然后将诗的每一句话依次读出来并显示
        f_open (file,"0:/message.txt", FA_READ);
        f_read (file,read_buf_huanghelou,14,&bw);
        f_close(file);
        LCD_ShowString(60,400,400,16,16,read_buf_huanghelou);
问题:
只能读出第一句,下一句应该如何读?谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-18 22:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表