需要 C# 函数将灰度 TIFF 转换为黑白(单色/1BPP)TIFF

2023-12-02

我需要一个 C# 函数,它将获取 8 位灰度 TIFF 的 Byte[],并返回 1 位(黑白)TIFF 的 Byte[]。

我对使用 TIFF 相当陌生,但总体思路是我们需要将它们从灰度或彩色转换为黑白/单色/二进制图像格式。

我们通过 WCF 以 Byte[] 形式接收图像,然后我们需要将其转换为黑白,以便将它们发送到进行进一步处理的组件。我们目前不打算将它们保存为文件。

作为参考,在我们的测试客户端中,这是我们创建 Byte[] 的方式:

        FileStream fs = new FileStream("test1.tif", FileMode.Open, FileAccess.Read);
        this.image = new byte[fs.Length];
        fs.Read(this.image, 0, System.Convert.ToInt32(fs.Length));
        fs.Close();

- - - - 更新 - - - - -

我认为这里可能有不止 1 个好的答案,但我们最终使用了 CodeProject 站点的代码,并添加了以下方法来重载转换函数以接受 Byte[] 以及位图:

public static Byte[] ConvertToBitonal(Byte[] original)
    {
        Bitmap bm = new Bitmap(new System.IO.MemoryStream(original, false));
        bm = ConvertToBitonal(bm);
        System.IO.MemoryStream s = new System.IO.MemoryStream();
        bm.Save(s, System.Drawing.Imaging.ImageFormat.Tiff);
        return s.ToArray();
    }

CodeProject 上有一篇文章here这描述了您需要什么。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

需要 C# 函数将灰度 TIFF 转换为黑白(单色/1BPP)TIFF 的相关文章

随机推荐