Как прочитать TIFF заголовок файла c #? - PullRequest
3 голосов
/ 31 января 2012

Я хочу знать, как можно прочитать файл в двоичном формате.

например, файл изображения TIFF может иметь следующий двоичный формат в шестнадцатеричном 0000 4949 002A 0000. Как я могу получить эти значения вC #

Ответы [ 3 ]

3 голосов
/ 31 января 2012

Вот как я обычно читаю файлы в шестнадцатеричном формате, меняя заголовок по мере необходимости:

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

        }
    }
}
2 голосов
/ 31 января 2012

Вы можете использовать метод ReadAllBytes класса System.IO.File для чтения байтов в массив:

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);
0 голосов
/ 31 января 2012

Я не использовал LibTIFF.Net, http://bitmiracle.com/libtiff, но, похоже, он достаточно полный.

Использование этого файла вместо чтения файла в байтах и ​​последующего декодирования заголовков (заголовков) может быть намного проще.

...