Насколько я знаю, все классы из пространства имен System.Drawing загружают данные изображения сразу, когда изображение открыто.
Я думаю, LibTiff.Net может помочь вам прочитать свойства изображения без загрузки данных изображения.Это бесплатно и с открытым исходным кодом (лицензия BSD, подходит для коммерческих приложений).
Вот пример для вашей задачи (для краткости опущены проверки ошибок):
using BitMiracle.LibTiff.Classic;
namespace ReadTiffDimensions
{
class Program
{
static void Main(string[] args)
{
using (Tiff image = Tiff.Open(args[0], "r"))
{
FieldValue[] value = image.GetField(TiffTag.IMAGEWIDTH);
int width = value[0].ToInt();
value = image.GetField(TiffTag.IMAGELENGTH);
int height = value[0].ToInt();
value = image.GetField(TiffTag.XRESOLUTION);
float dpiX = value[0].ToFloat();
value = image.GetField(TiffTag.YRESOLUTION);
float dpiY = value[0].ToFloat();
}
}
}
}
Отказ от ответственности: IЯ один из хранителей библиотеки.