如何读取TIFF标头文件c#

本文关键字:文件 TIFF 何读取 读取 | 更新日期: 2023-09-27 18:21:51

我想知道如何读取二进制格式的文件。

例如,tiff图像文件可以具有以下十六进制0000 4949 002A 0000的二进制格式。如何在c#中获得这些值?

如何读取TIFF标头文件c#

以下是我通常如何读取十六进制格式的文件,根据需要更改了头:

using System;
using System.Linq;
using System.IO;
namespace FileToHex
{
    class Program
    {
        static void Main(string[] args)
        {
            //read only 4 bytes from the file
            const int HEADER_SIZE = 4;
            byte[] bytesFile = new byte[HEADER_SIZE];
            using (FileStream fs = File.OpenRead(@"C:'temp'FileToHex'ex.tiff"))
            {
                fs.Read(bytesFile, 0, HEADER_SIZE);
                fs.Close();
            }
            string hex = BitConverter.ToString(bytesFile);
            string[] header = hex.Split(new Char[] { '-' }).ToArray();
            Console.WriteLine(System.String.Join("", header));
            Console.ReadLine();
        }
    }
}

您可以使用System.IO.File类的ReadAllBytes方法将字节读取到数组中:

System.IO.FileStream fs = new System.IO.FileStream(@"C:'Temp'sample.pdf", System.IO.FileMode.Open, System.IO.FileAccess.Read);
int size = 1024;
byte[] b = new byte[size];
fs.Read(b, 0, size);

我没有使用过LibTIFF.Net,http://bitmiracle.com/libtiff但它似乎相当完整。

使用它,而不是将文件读取为字节,然后对标头进行解码,对您来说可能会容易得多。