WPF JpegBitmapDecoder создает разные высоты и ширины - PullRequest
2 голосов
/ 21 октября 2011

Я пытаюсь прочитать изображение в формате JPEG и привязать его к свойству заливки прямоугольника с помощью следующего кода:

Dim filePath as string = "PathToJpeg.jpg"     
Dim imageStreamSource As New FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read)
Dim decoder As New JpegBitmapDecoder(imageStreamSource, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default)
Dim bitmapSource As BitmapSource = decoder.Frames(0)

Когда я читаю это с изображениями меньшего размера, это работает нормально.Но когда я указываю на это изображение, которое 3840 на 3024, bitmmapSource.Height читает 924 и bitmapSource.Width читает 1174

Из того, что я могу сказать, это почти как 1024x768 - верхний предел

Я что-то упускаю здесь очевидное?

1 Ответ

1 голос
/ 27 октября 2011

Я действительно не знаю, почему вы явно используете JpegBitmapDecoder. Мой код C # для этого довольно прост:

BitmapSource bitmapSource = new BitmapImage(new Uri(@"PathToJpeg.jpg"));

Класс BitmapSource предлагает два свойства ширины и высоты:

Ширина: получает ширину растрового изображения в независимых от устройства единицах (1/96 дюйма на единицу). ( Из MSDN )

PixelWidth: получает ширину растрового изображения в пикселях. ( из MSDN )

Я проверил это с изображением со скоростью 111 MPixel, и оно отлично работает.

...