读书人

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

发布时间: 2013-03-14 10:33:15 作者: rapoo

.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

读书人网 >C++

热点推荐