仿照别人的程序写的bmp数据提取C代码,并将提取的数据放到txt文档中

 /*
date : 2014/06/24
designer :pengxiaoen
version : dev4.9.9.0
function :读取bmp图片的图片数据信息到文件txt中。参考了其他的程序 bmp 文件格式: 第10个字节处存放图像数据起始地址 —— 此程序中25行用到
第36h - 0436h 字节处存放调色板 —— 此程序中没有用到 *****************************************************************************************
检测数据读取:第37行替换第35行,并且屏蔽掉42行-73行 bmp_data 修改成int
发现37行打印出来的数据为1a111111.使用存储格式看.bmp的时候发现对
应的位置数据为1111111a。 因为原始程序中使用的 bmp_data 是char 型,也就是读取数据的时候是一个像素点一个
像素点的读,所以就避免了倒序的情况发生
*******************************************************************************************
*/
#include "stdio.h"
#include "FileDefine.h" main()
{
unsigned char bmp_data [pic_size];
unsigned int i , pic_data_add ; //**********************************************************
FILE *fp0 = fopen(pic_file ,"rb"); //开启图片
if(fp0==NULL)
printf("open pic_file fault !!!! \n");
else
{
printf("open pic_file sucess! \n"); fseek(fp0,10L,); // 找到图片数据存储位置地址
fread(&pic_data_add,,,fp0);
printf("\nbmp_data_begin is %.4x \n",pic_data_add );
rewind(fp0);
fseek(fp0,pic_data_add,); // 指针指向图片数据存储位置
fread(bmp_data,pic_size,,fp0); //将数据读取到数组中 //fread(bmp_data,4,1,fp0); printf("%x",bmp_data[0]) ; fclose(fp0);
}
//**********************************************************
FILE *fp1 = fopen(pic_data ,"w"); // 打开文件为存储图片数据做准备
if(fp1==NULL)
printf ("txt data file open fault !!!!!");
else
{
printf ("\ntxt data file open sucess !\n\n"); for (i=;i<pic_size;i++)
{
fprintf (fp1,"%.2x\n",bmp_data[i]); // 将数组中的数据放到txt文档中
}
fclose(fp1);
} //***************为了验证Verilog中读取的数据是否正确而额外加的代码***********************
FILE *fp2 = fopen("checkPic_data.txt" ,"w"); // 打开文件为存储图片数据做准备
if(fp2==NULL)
printf ("checkPic_data.txt data file open fault !!!!!");
else
{
printf ("\ncheckPic_data.txt data file open sucess !\n\n"); for (i=;i<pic_size;i++)
{
if(!(i%)) fprintf (fp2,"\n\n\n%.2x",bmp_data[i]);
else if(!(i%)) fprintf (fp2,"\n%.2x",bmp_data[i]);
else fprintf (fp2,"%.2x",bmp_data[i]); // 将数组中的数据放到checkPic_data文档中
}
fclose(fp2);
} system ("pause");
}
 #define pic_file  "flower.bmp"
#define pic_data "pic_data.txt"
#define bmp_file_rslt "sobel_rslt1.bmp" #define original_pic_height 768
#define original_pic_width 1024 #ifdef original_pic_width%=
#define pic_width original_pic_width
#else
#define pic_width (original_pic_width + 4 - original_pic_width%4 )
#endif #define pic_size (pic_width * original_pic_height)

bmp图片数据提取的更多相关文章

  1. 读取bmp图片数据

    public void getBMPImage(String source) throws Exception { clearNData(); //清除数据保存区 FileInputStream fs ...

  2. 【C】用C语言提取bmp图片像素,并进行K-means聚类分析——容易遇到的问题

    关于bmp图片的格式,网上有很多文章,具体可以参考百度百科,也有例子程序.这里只提要注意的问题. (1)结构体定义问题:首先按照百度百科介绍的定义了结构体,但是编译发现重定义BITMAPFILEHEA ...

  3. 提取bmp图片的颜色信息,可直接framebuffer显示(c版本与python版本)

    稍微了解了下linux的framebuffer,这是一种很简单的显示接口,直接写入像素信息即可 配置好的内核,会有/dev/fbn 的接口,于是想能否提前生成一个文件,比如logo.fb,里面仅包含像 ...

  4. [转]RGB数据保存为BMP图片

    转自:http://blog.csdn.net/yixianfeng41/article/details/52591585 一.BMP文件由文件头.位图信息头.颜色信息和图形数据四部分组成. 1.BM ...

  5. 利用COM组件IPicture读取jpg、gif、bmp图片文件数据和显示图片

    1.读取图片数据 函数原型:bool LoadImage(const char *pName, unsigned char *pBitData); 函数功能,读取pName指向的图片文件的位图数据 b ...

  6. c语言数字图像处理(一):bmp图片格式及灰度图片转换

    本篇文章首先介绍了bmp图片格式,主要参考wiki上的内容,包括bmp文件的存储方式,对于一些常见的bmp文件格式都给了例子,并且对8位 16位RGB555 16位RGB565格式的bmp文件进行了简 ...

  7. 纯C++代码实现将像素矩阵保存为bmp图片

    由于工作需要,时常需要将像素矩阵保存图片显示观看.为此,特地总结了三种使用纯C++代码生成bmp图片的方法.分别是使用自定义数据.从外界导入的txt和csv以及从图片中导入的数据. 1.使用自定义数据 ...

  8. 【VC++技术杂谈006】截取电脑桌面并将其保存为bmp图片

    本文主要介绍如何截取电脑桌面并将其保存为bmp图片. 1. Bmp图像文件组成 Bmp是Windows操作系统中的标准图像文件格式. Bmp图像文件由四部分组成: (1)位图头文件数据结构,包含Bmp ...

  9. bmp图片的有关操作

    读取bmp图片 并生成新的bmp图片 #include "stdafx.h"#include <windows.h>#include <cmath>#inc ...

随机推荐

  1. [转] IOS中AppDelegate中的生命周期事件的调用条件

    IOS中AppDelegate中的生命周期事件的调用条件 //当应用程序将要进入非活动状态执行,在此期间,应用程序不接受消息或事件,比如来电 - (void)applicationWillResign ...

  2. C#获取桌面壁纸图片的路径(Desktop Wallpaper)

    原文 C#获取桌面壁纸图片的路径(Desktop Wallpaper) 利用 Windows 的 API 获取桌面壁纸的实际路径,使用的是 SystemParametersInfo 这个API,此AP ...

  3. HDU 3398 String

    题目大意:一个长为n的01字符串,使前缀任意0的数量不大于1的数量,求方案数…… 题解:高一模拟赛时做过,是卡特兰数的几何意义,将字符串变为矩阵寻路,不可越过对角线,那么就是卡特兰数了,C(n+m, ...

  4. javascript - Get page source code - Stack Overflow

    javascript - Get page source code - Stack Overflow Get page source code

  5. 编译最新ffmpeg2.0.1到iOS设备

    www.mingjianhua.com 转载请注明出处. 上一篇文章讲了用NDKr9编译最新ffmpeg2.0.1到android平台,一般做了Android平台的编解码就免不了要做iOS,这次一起把 ...

  6. JavaBean讲解 规范

    一:JavaBean定义 JavaBean是一种可重复使用.跨平台的软件组件.JavaBean可分为两种:一种是有用户界面(UI,User Interface)的JavaBean,例如NetBean中 ...

  7. [小知识点]IE6下不支持:hover的解决方法

    在网上百度到的解决办法,感觉不错,和大家分享一下. 在CSS样式里加一句代码"body{behavior:url("文件夹/csshover.htc");}"即 ...

  8. linux shell: 搜索字符串,剔除包含特定字符的行

    搜索代码中出现CONFIG_BOOTARGS的行,但又不希望有#define和#undef, 暂时不知带如何直接用一个语句做到,因此用了如下三个语句. find . -type f | xargs g ...

  9. Sed简介 (转)

    Sed简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓 ...

  10. 看看微软代码的水平——Windows Live Writer 完成开源并推出开源分支

    http://www.oschina.net/news/68860/windows-live-writer-opensource