Я нашел эту ссылку http://www.fastgraph.com/help/image_file_header_formats.html, которая сообщает, где в файле вы можете найти тип и его размеры. Я полагаю, если вы используете что-то подобное ниже для поиска и получения первых нескольких байтов и закрытия после завершения, не стоит использовать много ресурсов
Непроверенный код ниже ...
// This really needs to be a member-level variable;
private static readonly object fsLock = new object();
// Instantiate this in a static constructor or initialize() method
private static FileStream fs = new FileStream("myFile.txt", FileMode.Open);
public string ReadFile(int fileOffset) {
byte[] buffer = new byte[bufferSize];
int arrayOffset = 0;
lock (fsLock) {
fs.Seek(fileOffset, SeekOrigin.Begin);
int numBytesRead = fs.Read(bytes, arrayOffset , bufferSize);
// Typically used if you're in a loop, reading blocks at a time
arrayOffset += numBytesRead;
}
// Do what you want to the byte array and close
}