我在Tiff复帧图像中读取了一个Directoy作为字节矩阵,该图像每像素从Uint 16矩阵中保存2个样本,并且图像移位了32个字节。
我尝试将图像保存为双倍宽度,并且可以正常工作,但我需要在每个像素中保存2个样本,以在Windows默认照片中获取正确的宽度。
ThermalFrameModel frame = new ThermalFrameModel(Measurement.unitCounts, this);
_sequence.SetDirectory((short)(frameNumber-1));
FieldValue[] value = _sequence.GetField(TiffTag.IMAGEWIDTH);
int width = value[0].ToInt();
value = _sequence.GetField(TiffTag.SAMPLESPERPIXEL);
int sampleperpixel= value[0].ToInt();
frame.Width = width;
int framewidth = frame.Width;
value = _sequence.GetField(TiffTag.IMAGELENGTH);
int height = value[0].ToInt();
frame.Height = height;
int imageSize = height * width;
int rasterSize = height * width * sampleperpixel;
byte[] raster = new byte[rasterSize];
frame.Data = new double[imageSize];
for (int j = 0,offset=0; j < height; j++)
{
_sequence.ReadScanline(raster, offset, j,(short) PlanarConfig.CONTIG);
offset += width *sampleperpixel;
for (int i = 0; i < framewidth; i++)
{
frame.Data[i + j * framewidth] =
BitConverter.ToUInt16(raster,(i + j * width) * sampleperpixel);
}
}