C语言打开图片文件获取怎样获取图片的长宽?

cargod 2008-01-07 02:16:33
我需要用C语言按文件方式打开一个图片,按照一定约定转存为一个unsigned char 型数组中,现在的问题是我要知道它的长高,在网上搜了一圈也没找到答案,请教大家
...全文
846 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cargod 2008-01-14
  • 打赏
  • 举报
回复
为什么不能结贴呢
总是提示密码验证有误
cargod 2008-01-08
  • 打赏
  • 举报
回复
呵呵,我是比较初级的
我的意思是读图片文件文件给结构体的成员赋值,是按照定义的顺序依次赋值么?
比如
fread(buffertemp,65535,1,bmpfile);
bitmapfileheader.bftype = buffertemp[0];
bitmapfileheader.bfsize = buffertemp[1];
…………
是这种形式么?
m_nNightmire 2008-01-08
  • 打赏
  • 举报
回复
fread(buffertemp,65535,1,bmpfile);
memcpy( &bitmapfileheader, buffertemp, sizeof( BITMAPFILEHEADER ) );
memcpy( &bitmapinfoheader, buffertemp + sizeof( BITMAPFILEHEADER ), sizeof( BITMAPINFOHEADER ) );
...........
是这种形式....
oldmanzhao 2008-01-07
  • 打赏
  • 举报
回复
先读一个BITMAPFILEHEADER,再读一个BITMAPINFOHEADER,BITMAPINFOHEADER里面的biWidth和biHeight就是宽和高。
cargod 2008-01-07
  • 打赏
  • 举报
回复
按顺序读???
biheight在第几位??
oldmanzhao 2008-01-07
  • 打赏
  • 举报
回复
打开BMP文件后按顺序把这两个结构读出来,biWidth就是宽度,biHeight就是高度,不知道你是不是要读BMP。
oldmanzhao 2008-01-07
  • 打赏
  • 举报
回复
BMP文件的头是由一个BITMAPFILEHEADER 紧跟着一个 BITMAPINFOHEADER构成的,
两个结构如下:

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;

这是在VC里表示的结构

LONG 是 long
DWORD 是 unsgined long
WORD 是 unsigned short

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧