C# 问题 转换

来源:百度知道 编辑:UC知道 时间:2024/06/24 06:23:02
public struct BITMAPFILEHEADER //文件头
{
public int bfType; //文件类型字段("BM"即=19778)
public long bfSize; // '文件的大小
public int bfReserved1, bfReserved2;//保留(=0)
public long bfOffBits; //第一个像素的偏移量
}

自己定义 的
BITMAPFILEHEADER BF;

BinaryReader BR = new BinaryReader(File.Open(picturename,FileMode.Open));
BF=(BITMAPFILEHEADER)BR.ReadByte();

这时 出错了 说 无法将 byte 类 转换成 BITMAPFILEHEADER

怎么解决啊!!!!!!

BinaryReader.ReadByte() 返回的是 byte ,而你的是 BITMAPFILEHEADER ,结构完全不同,根本不可能转换。

你可以在结构里加一个字段,比如public byte Byte ;

然后

BITMAPFILEHEADER BF =new BITMAPFILEHEADER();
BF.Byte = BinaryReader.ReadByte()

比较近的两种解决方法:
一种方法是用一个返回值是BITMAPFILEHEADER的方法去做这个转换。
一种方法是自己重载BITMAPFILEHEADER到byte的转换方法。

你很可能是学图像处理的研究生,更可能是你老师用vb
想问下你需要解决什么问题,是黑白图比对么
你按字节读取后想转换到一个图像头结构,我想知道,你是为了存储才转换,还是别的,为什么要转换,是为了找到这个流中的size 还是type还是offbits呢》

这个。。当然会出错。
你自己定义的结构,怎么能把byte强制转化呢?