如何从位图计算或获取ROWSPERSTRIP,STRIPBYTECOUNTS,STRIPOFFSETS值以在C#中进行TIFF转换

时间:2019-07-18 11:32:06

标签: c# bitmap libtiff

使用属性将图像转换为tiff图像。使用位图对象将图像转换为tiff。在位图对象中,我找不到STRIPOFFSETS,ROWSPERSTRIP,STRIPBYTECOUNTS之类的值。 请帮助我,如何从位图对象获取或计算这些值。

实际上,我正在使用以下代码从位图转换tiff图像。

请帮助如何从位图对象获取或计算这些值。

public static void GetTiffImage(string filepath)
{
    try
    {
        using (Bitmap bmp= new Bitmap(filepath))
        {
            using (Tiff tif = Tiff.Open(filename,'w'))
            {
                if (tif == null)
                    return null;          
                    tif.SetField(TiffTag.ORIENTATION, Orientation.TOPLEFT);
                    tif.SetField(TiffTag.SAMPLESPERPIXEL, 1);
                    tif.SetField(TiffTag.IMAGEWIDTH, bmp.Width); 
           //Please help how to get these below values from bitmap
                    tif.SetField(TiffTag.STRIPOFFSETS, ?);
                    tif.SetField(TiffTag.ROWSPERSTRIP, ?);
                    tif.SetField(TiffTag.STRIPBYTECOUNTS, ?);             
                }
            }

            ............................
            .....................
        }
    }
    catch (Exception ex)
    {
        return null;
    }
}

1 个答案:

答案 0 :(得分:0)

t + std::to_string(2)将为图像高度。

ROWSPERSTRIP将是图像高度 * 宽度 * 颜色深度,其中颜色深度以字节为单位,因此每种颜色的典型1字节0-255范围将是3字节。