社区
图形处理/算法
帖子详情
求一个读取bmp图像倒数组,并显示的程序
2003bbs
2005-04-06 07:03:01
要求将bmp的文件头,信息头等四块分别读到不同的数组里。
然后将图像逐像素显示出来。
求大家帮忙,我不是编程的,编程我实在很菜。
...全文
273
15
打赏
收藏
求一个读取bmp图像倒数组,并显示的程序
要求将bmp的文件头,信息头等四块分别读到不同的数组里。 然后将图像逐像素显示出来。 求大家帮忙,我不是编程的,编程我实在很菜。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
sboom
2005-05-25
打赏
举报
回复
因为这个是BCB写的,不好意思。。。
2003bbs
2005-05-01
打赏
举报
回复
看了"sboom(+-LingCh-+)(爱美人不爱VC)",基本没明白你的头文件都是些什么.
2003bbs
2005-05-01
打赏
举报
回复
xuchunfang@eyou.com,谢谢!
freizl
2005-04-23
打赏
举报
回复
我还不是很清楚,能发到我的邮箱吗?
谢谢!!!
freizl@126.com
PIPI_QQ
2005-04-14
打赏
举报
回复
还不明白的话,给出你的邮箱,我发过去。
sboom
2005-04-09
打赏
举报
回复
#include <vcl.h>
#pragma hdrstop
#include<stdio.h>
#include "Unit1.h"
#include"File1.h"
#pragma pack(1)
struct BITMAPFILEHEADER_
{
short type;
int bfSize;
short re1,re2;
int Offbits;
};
struct BITMAPINFO_
{
long size;
long width,height;
short planes,bitCount;
long comp,sizeImg;
long xpels,ypels;
long used,important;
};
//-------------将BMP彩色表的数据校正到BCB TColor的数据。
void SwitchColor(long &c)
{
long blue=c& 0x000000ff;
long green=c& 0x0000ff00;
long red=c& 0x00ff0000;
c=(blue<<16) | green | (red>>16);
}
void xxx()
{
FILE *f=fopen("F:\\FX3.bmp","rb");
if(f==NULL) /*判断文件是否打开成功*/
{
ShowMessage("File open error");
return;
}
fseek(f,0,0);//移动到开头
//----------读BMP文件头
BITMAPFILEHEADER_ *bmph=new BITMAPFILEHEADER_();
if(fread((char*)bmph,sizeof(BITMAPFILEHEADER_),1,f)==NULL)
{
ShowMessage("File read error");
return;
}
//-----------读BMP信息头
BITMAPINFO_ *bmpi=new BITMAPINFO_();
if(fread((char*)bmpi,sizeof(BITMAPINFO_),1,f)==NULL)
{
ShowMessage("File read error2");
return;
}
//--------------读彩色表
long *c=new long[bmph->Offbits-sizeof(BITMAPFILEHEADER_)-sizeof(BITMAPINFO_)];
fread((char*)c,bmph->Offbits-sizeof(BITMAPFILEHEADER_)-sizeof(BITMAPINFO_),1,f);
//------------显示图形
unsigned char *p=new unsigned char[4];
int i=0,j=0,k=0,wc=0;
TColor *tc;
if(bmpi->width%4==0)//-----------因为BMP图像4字节对齐
wc=bmpi->width/4;
else
wc=bmpi->width/4+1;
for( i=0;i<bmpi->height;i++)
{
for(j=0;j<wc;j++)
{
fread(p,4,1,f);
for(k=0;k<4;k++)
{
long x=c[p[k]];
SwitchColor(x);//----------因为BCB的TCOLOR和BMP的彩色表反了。
Form1->Canvas->Pixels[200+j*4+k][300-i]=x; //------200和300是定位到Canvas的中间而已。
}
}
}
fclose(f);
};
BMP文件是从下倒上,从左到右倒向存储的,位图矩阵的第一行时图像的最底一行。
2003bbs
2005-04-08
打赏
举报
回复
感谢楼上弟兄们(除了广告那位),msdn我没有,谁能把代码贴出来,麻烦先!
lywgm
2005-04-08
打赏
举报
回复
MSDN中有完整的例子:DIBLOOK
zy3481
2005-04-08
打赏
举报
回复
MSDN SAMPLE中有一个DIBLOOK的例子,你看下OpenDocument部分代码就明白了。
thisisll
2005-04-07
打赏
举报
回复
我写了一个DLL你可以看看
我也是刚学的
我只针对24位做的
其他的原理一样就是麻烦点
其中pBmpFile是图象数据的指针
BMP_API BOOL ShowBmp(CDC* pDC,BYTE* pBmpFile)
{
if(pBmpFile==NULL)
return false;
BYTE* pBmp=&pBmpFile[54];
int nWidth,nHeight;
BITMAPINFOHEADER *bmpinfo=(BITMAPINFOHEADER*)&pBmpFile[14];
int bitcount=(int)bmpinfo->biBitCount;
if(bitcount!=24)
{
AfxMessageBox("it can only open 24 bit bmp");
return false;
}
nWidth=bmpinfo->biWidth;
nHeight=bmpinfo->biHeight;
BYTE* pBuf,* ptmp;
int widthbit=4-nWidth*3%4+nWidth*3;
for(int i=0;i<nHeight;i++)
{
pBuf=pBmp+widthbit*i;
for(int j=0;j<nWidth*3;j+=3)
{
ptmp=&pBuf[j];
CPoint point;
point.x=j/3;
point.y=nHeight-i;
pDC->SetPixel(point,RGB(ptmp[2],ptmp[1],ptmp[0]));
}
}
return true;
}
freizl
2005-04-06
打赏
举报
回复
顶一个。。。我也想知道!!!
计算机应用技术(实用手册)
芯片组设定也是Bios设置里面的
一个
重点设置,这里就详细说明一下! DRAM Timing Selectable(内存参数设置选项): 这个项目会视内存模块的不同,为接下来四个项目设定最佳的计时方式。默认值为「By SPD」。这个...
grub4dos-V0.4.6a-2017-02-04更新
执行时可以不用输入扩展名,比如输入test如果当前路径下有
一个
test.g4b就会自动使用。 2013-10-17 1.修改代码支持新版HOTKEY。 2013-07-10 1.insmod现在支持长文件名(以前最多11个字符,现在没有限制). 2....
通过Numpy实现
图像
处理
本课程包括以下主要内容:1
图像
的存储结构介绍。2
读取
,
显示
与保存
图像
。3
图像
的灰度图转换。4
图像
的通道提取。5
图像
重复,镜像,旋转等操作。6 通过双线性插值算法,实现
图像
的放大或缩小。7
图像
的卷积计算,实现浮雕效果。
C语言
读取
bmp
图像
并做简单
显示
C语言
读取
bmp
图像
信息并做简单
显示
)
bmp
文件格式
读取
bmp
文件信息并展示
bmp
文件格式
bmp
文件大体上分为四个部分:
bmp
文件构成 位图文件头BITMAPFILEHEADER 位图信息头BITMAPINFOHEADER 调色板Palette ...
【数字
图像
处理】C++
读取
、旋转和保存
bmp
图像
文件编程实现
通过我这些天用C++读写
bmp
图像
的经历,摸索再摸索,终于对
bmp
文件的结构、操作有了一定的了解,下面就大概介绍
bmp
图片纯C++的
读取
、旋转和保存的实现过程。 要用C++
读取
bmp
图片文件,首先要弄清楚
bmp
格式图片文件的...
图形处理/算法
19,468
社区成员
50,698
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章