计算机C语言编程-----C语言保存图形为16色BMP文件
- 博客分类:
- 技术杂绘
计算机C语言编程-----C语言保存图形为16色BMP文件
2011年12月31日
把下面的代码保存为文件名.C,如sv.c,存到c编译软件的include 文件夹内,这样以后要保存上面的图形模式文件,只要调用下面的函数就行了。如save_pic("my.bmp");,我的这些贴图都是用这个函数保存的。
#include
void save_pic(char *fn){
typedef long LONG;
typedef unsigned char BYTE;
typedef unsigned long DWORD;
typedef unsigned short WORD;
typedef struct tagBITMAPFILEHEADER {
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER;
typedef struct tagBITMAPINFOHEADER{
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
} BITMAPINFOHEADER;
int i,j;
FILE *fp;
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER bif;
int color[16]={0,4,2,6,1,5,3,7,8,12,10,14,9,13,11,15};
unsigned char rgb[64]={0,0,0,0,0,0,128,0,0,128,0,0,0,128,128,0
,128,0,0,0,128,0,128,0,128,128,0,0,128,128,128,0
,192,192,192,0,0,0,225,0,0,255,0,0,0,255,255,0
,255,0,0,0,255,0,255,0,255,255,0,0,255,255,255,0};
union
{
unsigned char value;
struct
{
unsigned c1:4;
unsigned c2:4;
}color;
}mycolor;
bfh.bfType=0x4d42;
bfh.bfSize=153718;
bfh.bfReserved1=0;
bfh.bfReserved2=0;
bfh.bfOffBits=118;
bif.biSize=40;
bif.biWidth=640;
bif.biHeight=480;
bif.biPlanes=1;
bif.biBitCount=4;
bif.biCompression=0;
bif.biSizeImage=0;
bif.biXPelsPerMeter=0;
bif.biYPelsPerMeter=0;
bif.biClrUsed=0;
bif.biClrImportant=0;
fp=fopen(fn,"wb");
fwrite(&bfh,sizeof(bfh),1,fp);
fwrite(&bif,sizeof(bif),1,fp);
fwrite(rgb,sizeof(rgb),1,fp);
for(j=479;j>=0;j--){
for(i=0;i<640;i+=2){
mycolor.color.c2=color[getpixel(i,j)];
mycolor.color.c1=color[getpixel(i+1,j)];
putc(mycolor.value,fp);
}
}
fclose(fp);
}
发表评论
-
Linux私房菜 课后练习第十章
2012-01-20 00:13 529Linux私房菜 课后练习第十章 2011年06月15日 ... -
JAVA I / O操作与字节流
2012-01-20 00:13 850JAVA I / O操作与字节流 2010年08月17日 ... -
Linux Kernel 核心中文手册(5)--进程间通信机制
2012-01-20 00:13 729Linux Kernel 核心中文手册(5)--进程间通信机制 ... -
S3C2440上触摸屏驱动实例开发讲解(转)
2012-01-20 00:13 637S3C2440上触摸屏驱动实例开发讲解(转) 2011年04 ... -
linux 笔记
2012-01-20 00:13 557linux 笔记 2010年10月31日 ... -
全国各地的美女特点一览
2012-01-19 01:05 620全国各地的美女特点一览 2011年05月07日 ... -
全国各地的美女特点一览
2012-01-19 01:05 590全国各地的美女特点一 ... -
上海女人之前世今生
2012-01-19 01:05 512上海女人之前世今生 20 ... -
2011-9-29
2012-01-19 01:05 5752011-9-29 2011年09月29日 vbs常用代 ... -
VC中的0XCCCCCCCC
2012-01-19 01:05 1223VC中的0XCCCCCCCC 2011年10月23日 在 ... -
bmp/gif/jpg图象最底层原理分析(1)----jpg
2012-01-17 00:28 638bmp/gif/jpg图象最底层原 ... -
索引模式下深度为8或4的BMP图
2012-01-17 00:28 856索引模式下深度为8或4 ... -
24bitbmp to bmp565
2012-01-17 00:28 85624bitbmp to bmp565 2011年10月22日 ... -
使用位图句柄,将其保存为BMP文件
2012-01-17 00:28 1486使用位图句柄,将其保存为BMP文件 2011年05月02日 ... -
小学生评语大全{六年级}
2012-01-15 14:47 549小学生评语大全{六年级 ... -
最有文采有学生评语下载大全
2012-01-15 14:47 664最有文采有学生评语下载大全 2010年01月22日 h ... -
作文评语大全
2012-01-15 14:47 527作文评语大全 2009年10 ... -
小学生期末评语经典大全
2012-01-15 14:47 546小学生期末评语经典大全 2011年12月15日 1.你是 ... -
作文评语大全
2012-01-15 14:47 581作文评语大全 2009年11 ...
相关推荐
《C语言高级编程与实例剖析》随书源码 第1章 内存管理 1. 1.1 预备知识 1 1.1.1 PC存储器结构 1 1.1.2 CPU地址线宽度 3 1.1.3 内存管理方式 5 1.1.4 内存编译模式 6 1.1.5 堆概念和结构 9 ...
无字库技术 73 7.5.1 小字库技术 74 7.5.2 无字库技术 80 7.6 中文特效 83 7.6.1 多字体显示 83 7.6.2 文字格式显示 83 7.7 本章小结 84 第8章 图形文件 85 8.1 bmp文件调用 85 8.1.1 bmp文件结构 86 8.1.2 256色bmp...
[实验目的] 通过分析BMP文件的格式, 从而读取并显示BMP文件以及抖动算法的实现 ...BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。 BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位
2012-06-12 11:54 38,018 C语言图形编程.rar 2012-06-12 12:26 521,167 C语言实现可视化人机界面的有效方法.pdf 2012-06-12 12:23 3,250,257 C语言精髓例子.rar 2012-06-12 11:41 334,336 C语言编程规范-1.0.doc ...
保存文件:C语言格式的默认为.h类型,汇编格式的默认为.inc类型,只要将他们加入到 您的工程中就可以了。 7。新增加了自动添加下划线功能。这项功能在做点阵显示和修改的时候并不出现下划线, 设置了以后仅仅在...
2014-01-16(yaya) 1.当 FDD 模式的 u 盘(有 BPB,没有分区表)被 BIOS 分配驱动器号 0x80 时,映射为 0x00, 同时屏蔽驱动器号 0x80(避免通过 BIOS 读 u 盘,有可能死机)。 这一更改也避免了 Issue 162 读 ...
保存文件:C语言格式的默认为.h类型,汇编格式的默认为.inc类型,只要将他们加入到 您的工程中就可以了。 7。新增加了自动添加下划线功能。这项功能在做点阵显示和修改的时候并不出现下划线, 设置了以后仅仅在...
VC图形编程的一个简单工程<1450kb><END> 25,DIBShow.zip 设备无关位图的一个里例子<1830kb><END> 26,Clock.zip 一个数字时钟的图形的工程<1450kb><END> 27,PAINTOBJ.zip 一个类似于画图的小程序<1450kb><END> 28,...
读BMP文件,只能打开256色 (可以是灰度) 显示和内存贴图技术 关于调色板: 调色板实际上是一个数组,4个BYTE 分别是 B,G,R,和 Reserved 每一个像素点都有一个相应的数组。 关于VC和windows 的绘图机制: 使用...
3、开发注重交互并且文件读写复杂的的简单应用程序可以利用以CFormView为基础视的单文档视结构。 4、利用对话框得到用户输入的数据,在等级提高后可使用就地输入。 5、在对多文档要求不强烈时尽量避免多文档视结构,...
图象的检测,模板匹配,基于C的一个图像编程应用实例,注意,程序仅可以识别256色的BMP图像,程序写的比较早,对于了解图像解析有一定参考性。 命令行编译过程如下: vcvars32 rc bmp.rc cl detect.c bmp.res user32...
方便用户在编程中轻松算模,这款软件受到使用的人的极大表扬。 1.生成中英文数字混合的字符串的字模数据. 2.可选择字体,大小,并且可独立调整文字的长和宽,生成任意形状的字符。 3.各种旋转,翻转文字功能 4.任意...
6.为了以最佳方式、最少的重复,为多种应用服务,把数据集中起来以一定的组织方式存在计算机的外存储器中,就构成 __D___ 。 A、FoxBASE B、DOS C、数据库管理系统 D、数据库 7.用紧急启动盘(ESD)启动计算机后,屏幕...
16.什么是MDA 17.tcp与udp的区别 18.链表与散列表和数组的区别 19.堆和栈的区别 20.ejb的分类及区别 21.你对现在软件业以及国内软件业的看法 22.谈谈java多线程 23.谈谈文件加密技术 24.软件开发生命周期 ...