首页 > 解决方案 > 如何从位图中计算或获取 ROWSPERSTRIP、STRIPBYTECOUNTS、STRIPOFFSETS 值以在 C# 中进行 tiff 转换

问题描述

将图像转换为具有属性的 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;
    }
}

标签: c#bitmaplibtiff

解决方案


ROWSPERSTRIP将是图像高度。

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


推荐阅读