Почему этот пример кода импорта TIFF приводит к ошибкам? - PullRequest
2 голосов
/ 10 апреля 2019

Я прочитал Как: кодировать и декодировать изображение TIFF и копировать код

// Open a Stream and decode a TIFF image
Stream imageStreamSource = new FileStream("tulipfarm.tif", FileMode.Open, 
FileAccess.Read, FileShare.Read);
TiffBitmapDecoder decoder = new TiffBitmapDecoder(imageStreamSource, 
BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
BitmapSource bitmapSource = decoder.Frames[0];

// Draw the Image
Image myImage = new Image();
myImage.Source = bitmapSource;
myImage.Stretch = Stretch.None;
myImage.Margin = new Thickness(20);

в консольное приложение в Visual Studio 2017. Я добавил ссылку на PresentationCore для https://stackoverflow.com/a/50192029/9044571 и это позволило мне добавить

using System.Windows.Media.Imaging;

Но теперь я получаю сообщение об ошибке (Ошибка CS0144 Невозможно создать экземпляр абстрактного класса или интерфейса 'Изображение'), связанный со строкой

Image myImage = new Image();

Как я могу это исправить?Может быть проблема в том, что я делаю это из консольного приложения?

1 Ответ

0 голосов
/ 10 апреля 2019

Причина в том, что вы нацелены на System.Drawing.Image класс , который абстрактный

Исправлено либо: -

  1. Удалить неправильное Пространство имен

  2. Использование псевдонима пространства имен

Псевдонимы пространства имен

Директива об использовании может также использоваться для создания псевдонима для Пространство имен. Например, если вы используете ранее написанный пространство имен, которое содержит вложенные пространства имен, вы можете объявить псевдоним, чтобы обеспечить краткий способ ссылки на него в частности, как в следующем примере:

using Co = Company.Proj.Nested;  // define an alias to represent a namespace
  1. Явно нацельтесь на правильный

    var myImage = new System.Windows.Media.Imaging.Image();

...