Использование классов визуализации WPF - получение размеров изображения без чтения всего файла
Ссылка this post Я хочу, чтобы читать высоту и ширину файлов изображений без чтения во весь файл в память.
В сообщении Frank Krueger упоминается, что есть способ сделать это с некоторыми классами визуализации WPF. Любая идея о том, как это сделать?
Ответ 1
Это должно сделать это:
var bitmapFrame = BitmapFrame.Create(new Uri(@"C:\Documents and Settings\All Users\Documents\My Pictures\Sample Pictures\Winter.jpg"), BitmapCreateOptions.DelayCreation, BitmapCacheOption.None);
var width = bitmapFrame.PixelWidth;
var height = bitmapFrame.PixelHeight;
Ответ 2
Следуя рекомендации сэра сока, вот какой-то альтернативный код, который позволяет избежать блокировки файла изображения:
using (var stream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read))
{
var bitmapFrame = BitmapFrame.Create(stream, BitmapCreateOptions.DelayCreation, BitmapCacheOption.None);
var width = bitmapFrame.PixelWidth;
var height = bitmapFrame.PixelHeight;
}