Создайте новый экземпляр изображения в C#, используя SixLabors.ImageSharp - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь создать новый экземпляр класса Image с помощью SixLabors.Imagesharp, но получаю ошибку. Система, с которой я работаю, использовала старый ImageSharp, и мы хотим обновить пакеты nuget и вместо этого использовать SixLabors.ImageSharp.

Раньше код был таким: СТАРЫЙ код с ImageSharp:

var resultImage = new Image<Rgba32>(outputImageWidth, outputImageHeight);

Новый код, который я пытаюсь написать с SixLabors.ImageSharp, точно такой же, но на этот раз я получил массаж :

Severity Code Description   Project File Linem Suppression State
Error CS0315 The type 'SixLabors.ImageSharp.PixelFormats.Rgba32' cannot be used as type parameter 'TPixel' in the generic type or method 'Image<TPixel>'. There is no boxing conversion from 'SixLabors.ImageSharp.PixelFormats.Rgba32' to '?'.

Я пробовал много других способов создать новый образ, но мне это не удалось. Вы знаете, как я могу создать новое изображение с помощью SixLabors.Imagesharp?

Ответы [ 2 ]

1 голос
/ 26 мая 2020

Пространство имен для формата пикселей изменилось, поэтому в вашем коде отсутствует импорт.

using SixLabors.ImageSharp.PixelFormats;

Следующий код компилируется и запускается для 1.0.0-rc0001

using (var image = new Image<Rgba32>(1000, 1000))
{
    // Do something
}

Документация

0 голосов
/ 26 мая 2020

Согласно Документации , конструктор не принимает Generi c, поэтому измените его, как показано ниже, и попробуйте.

var resultImage = new Image(outputImageWidth, outputImageHeight);

EDIT: Исправлена ​​ссылка на документацию. Спасибо @ James

...