首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

.raw格式的体数据,该怎么解决

2013-03-14 
.raw格式的体数据.raw格式的体数据(注意是体数据)存储的是什么类型的数值?据说是UCHAR类型的,是RGBA值吗?

.raw格式的体数据
.raw格式的体数据(注意是体数据)存储的是什么类型的数值?据说是UCHAR类型的,是RGBA值吗?如果是那RGBA值是怎么组织的?怎么将R,G,B,A的单独值取出来?


#include <iostream>
#include <stdio.h>

using namespace std;

int main(int argc, char **argv)
{
  int w=256, h=256, d=225;
  FILE *fp;
  size_t size=w*h*d;
  unsigned char *data=new unsigned char[size];

  if(!(fp=fopen("head256.raw","rb")))  
  {
    printf("Error: opening .raw file failed\n");
    return 0;
  }
  else
    printf("ok: open .raw file successed\n");
  
  if(fread(data,sizeof(char),size,fp)!=size)
  {
    printf("Error: read .raw file failed\n");
    return 0;
  }
  else
    printf("ok: read .raw file successed\n");

  fclose(fp);

  cout<<data[1]<<endl;

  return 0;
} .raw格式体数据
[解决办法]
.raw没有固定的标准,要看生成的规则。
[解决办法]
raw volume data 一般是 unsigned char 或 unsigned short,肯定不是 rgba,具体是那个你可以自己计算文件大小,看那个和磁盘上的文件一样大,当然前提是你知道 volume data 的维度大小。另外对于非 unsigned char 的情况,还存在大小端的问题。一般情况下 raw volume data 都有伴随的格式说明文件,不需要你自己猜。
[解决办法]
http://www.handmade.com

热点排行