搜索
bottom↓
回复: 0

stm32f103sd卡存储图片问题

[复制链接]

出0入0汤圆

发表于 2013-8-18 20:50:49 | 显示全部楼层 |阅读模式
我在使用SD卡存储摄像头采集回来的图片,总是无法打开,不知道是什么原因?求解释啊,这是bmp的源代码。
#include "bmp.h"
unsigned int buf[80][120];

/***************************************************************************/
FATFS fs[2];            // Work area (file system object) for logical drive
FIL fsrc, fdst;         // file objects
int aa = 0;
FRESULT res;            // FatFs function common result code
UINT br, bw;            // File R/W count
unsigned int i,j;
char name3[4]=".bmp";     /*图像后缀名*/
RGBQUAD rgbquad[256];

BITMAPCOREHEADER bmphead; /* 存放SD卡的信息 */
BITMAPINFOHEADER bmpheadinfo;/* 存放SD卡的信息 */
/***************************************************************************/

/****************************************************************************
* 名    称:BMP_ENCODE()
* 功    能:将液晶屏像素值重新编码并保存至SD Card。
* 入口参数:filename                文件名
* 出口参数:
* 说    明:
****************************************************************************/

void BMP_ENCODE(char *filename)
{        int iii;
    strcat(filename,name3);//为filename添加".bmp"后缀
    f_mount(0, &fs[0]);
    res = f_open(&fsrc,filename, FA_CREATE_ALWAYS | FA_WRITE); //创建一个BMP图片文件
    for( iii=0;iii<256;iii++)//写调色板灰度像素值
    {
      rgbquad[iii].rgbBlue=iii;
      rgbquad[iii].rgbGreen=iii;
      rgbquad[iii].rgbRed=iii;
      rgbquad[iii].rgbReserved=0;
    }
/***************给位图的文件头赋值********************/
    bmphead.bfType = 0x4d42;      
    bmphead.bfSize = 9600+54+1024;//图像总数据大小    bmphead.bfReserved1 = 0;
    bmphead.bfReserved2 = 0;
    bmphead.bfOffBits   = 54;//文件头信息总偏移量
/*************************end*************************/
   
/***************给位图的文件头信息赋值****************/
    bmpheadinfo.biSize =40;//40信息偏移量
    bmpheadinfo.biWidth =120;     //设置图像的纵向分辨率   
bmpheadinfo.biHeight =80;    //设置图像的横向分辨率
    bmpheadinfo.biPlanes =1;
    bmpheadinfo.biBitCount =8;   //像素深度8位
    bmpheadinfo.biCompression = 0;
    bmpheadinfo.biSizeImage =9600;//实际用到的像素数据大小  
  bmpheadinfo.biXPelsPerMeter =0;
    bmpheadinfo.biYPelsPerMeter = 0;
    bmpheadinfo.biClrUsed =0;
    bmpheadinfo.biClrImportant =0;
      
    res |= f_write(&fsrc, &bmphead, 14, &br);         //写bmp格式的文件头
    res |= f_write(&fsrc, &bmpheadinfo, 40, &br);     //写bmp格式文件的信息头
    res |= f_write(&fsrc, &rgbquad, 1024, &br);       //写调色板
   
//    for(i=0; i<image_height; i++)
//    {               
//            res = f_write(&fsrc, &buf[i], image_width , &br);               //写入图像数组的一行数据,长度为图像列数,循环次数为图像行数
//    }
         for(i=0; i<80; i++)
    {              
           res = f_write(&fsrc, &buf[i], 120, &br);               //写入图像数组的一行数据,长度为图像列数,循环次数为图像行数

        }

    f_close(&fsrc);   
    f_mount(0, 0);      
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 09:20

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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