Je travaille sur un service Web utilisant .Net Core 2.1.
J'ai un tableau d'octets contenant toutes les valeurs de pixels (en échelle de gris), une largeur, une hauteur. Je veux créer un bitmap à partir de ces paramètres.
Voici mon code (à partir d'un projet .Net Framework 4 opérationnel):
public FileResult PostSealCryptItem(Byte[] matrix, int width, int height)
{
Bitmap bmp = new Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
for (int y = 0; y < height; y++)
for (int x = 0; x < width; x++)
bmp.SetPixel(x, y, Color.FromArgb(ToArgb(matrix, x, y)));
Byte[] data = BitmapToByteArray(bmp);
FileContentResult result = new FileContentResult(data , "image/png");
return result;
}
Mais dans. NET Core, j'ai l'erreur:
Le type ou le nom d'espace de noms 'Bitmap' est introuvable (il vous manque une directive using ou une référence d'assembly?)
J'ai essayé d'ajouter une référence à System.Drawing mais cela n'a pas fonctionné.
3 Réponses :
Vous pouvez utiliser ImageSharp au lieu de System.Drawing
https://github.com/SixLabors/ImageSharp
Console Nuget
Install-Package SixLabors.ImageSharp -Version 1.0.0-beta0005
Installez Nuget Package System.Drawing.Common
Il n'est plus inclus avec .net core et doit être ajouté manuellement.
Aspose.Drawing est un remplacement multiplateforme de System.Drawing. La bibliothèque est entièrement gérée et prend en charge les services Web à l'aide de .Net Core 2.1. (Je suis l'un des développeurs.)
Il n'y a pas de manipulation d'image intégrée dans .NET Core, vous devez utiliser un outil tiers, mais il y en a de bons. Par exemple, j'utilise actuellement SkiaSharp .
Copie possible de Comment utiliser les ressources bitmap dans ASP.NET Application principale?
Il existe System.Drawing.Common
@stuartd L'inconvénient est que vous êtes limité à l'exécution de Windows, je crois?
@DavidG y ressemble, maintenant je vois qu'il a
Microsoft.Win32.SystemEventscomme dépendancevous pouvez utiliser le pack de compatibilité Windows. Je suppose que vous devez vous en tenir à Windows alors ... blogs.msdn.microsoft.com/dotnet/2017/11/16/...
hanselman.com/blog/HowDoYouUseSystemDrawingInNETCore.aspx
@stuartd Oui, c'est pourquoi je ne recommanderais pas de l'utiliser. Surtout compte tenu du fait que
SkiaSharpetImageSharpfont tous les deux tout (et plus). Skia prend également en charge webp, ce qui peut être utile.