Передача System.Drawing.Common.Bitmap (.NET Standard 2.0) классу, ожидающему System.Dwawing.Bitmap (.NET 4.7.2)

2

Я работаю над преобразованием некоторых библиотек классов из .NET 4.7.2 в .NET Standard (чтобы другие сборки Standard/Core могли их лучше использовать), и у меня возникла проблема с конкретной сторонней библиотекой. Эта библиотека выполняет обработку изображений, и многие из ее методов классов берут объекты Image или Bitmap из классического System.Drawing имен System.Drawing.

Я обнаружил стандартный пакет .NET System.Drawing.Common котором есть классы совместимости, так что мое использование этих классов в моем исходном коде работает нормально. Но когда я пытаюсь передать один из этих классов в эту библиотеку, я получаю сообщение об ошибке:

Ссылка на тип "Bitmap" утверждает, что она определена в "System.Drawing", но не может быть найдена

Мне кажется, я понимаю, что здесь происходит (типы определены в сборках с разными именами, поэтому они являются разными типами). Но есть ли способ заставить их работать как есть? Или же он потребует от сторонней библиотеки внесения изменений для поддержки .NET Standard?

Теги:
.net-standard

1 ответ

0

System.Drawing не является частью .NET Standard, поэтому типы не совместимы.

Кроме того, я бы не стал использовать System.Drawing.Common как это всего лишь оболочка вокруг GDI+, которая плохо работает в многопоточных средах, таких как код на стороне сервера.

Я бы порекомендовал перейти на ImageSharp или SkiaSharp, которые должны работать во всех ваших проектах.

  • 0
    Как переход на ImageSharp позволит мне передавать параметры в существующую стороннюю библиотеку, которая ожидает System.Drawing.Bitmap? Если это можно заставить работать, это было бы прекрасно, но я скептически отношусь ...
  • 0
    Я имел в виду, что вам придется обновить систему, которая ожидает растровое изображение тоже.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню