如何读取TIFF头文件c#?

发布于 2025-01-01 09:21:30 字数 97 浏览 0 评论 0原文

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

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

I wanna know how it is possible to read a file in binary format.

for example a tiff image file may have the following binary format in hex 0000 4949 002A 0000.
how can i get these values in c#?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

捶死心动 2025-01-08 09:21:30

这是我通常读取十六进制格式文件的方式,根据需要更改标题:

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();

        }
    }
}

Here is how I usually read files in hexadecimal format, changed for the header, as you need:

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();

        }
    }
}
一向肩并 2025-01-08 09:21:30

您可以使用 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);

You can use the ReadAllBytes method of the System.IO.File class to read the bytes into an array:

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);
怀中猫帐中妖 2025-01-08 09:21:30

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

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

I have not used LibTIFF.Net, http://bitmiracle.com/libtiff but it seems to be fairly complete.

Using it, instead of reading the file as bytes and then decoding the header(s) may be a lot easier for you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文