Upgrading NuGet System.Drawing.Common to 6.0.0 causes the following error:
CA1416 This call site is reachable on all platforms. 'Image.FromStream(Stream)' is only supported on: 'windows'.
https://www.nuget.org/packages/System.Drawing.Common/
The affected code is the following:
var drawingImage = System.Drawing.Image.FromStream(memstr);
We use the library to access the method GetThumbnailImage.
public byte[] GetThumbnailBytes(byte[] imageBytes)
{
var thumbnailBytes = Array.Empty<byte>();
using (MemoryStream memstr = new MemoryStream(imageBytes))
{
var drawingImage = System.Drawing.Image.FromStream(memstr);
var thumbnailSize = GetThumbnailSize(drawingImage);
var thumbnail = drawingImage.GetThumbnailImage(thumbnailSize.Width, thumbnailSize.Height, null, IntPtr.Zero);
var ms = thumbnail.ToStream(drawingImage.RawFormat);
thumbnailBytes = ms.ReadFully();
}
return thumbnailBytes;
}
We only host the application on Azure so targeting Windows is fine but replacing GetThumbnailImage is acceptable as well.
This has been an long open issue
I have got around it by editing my shared assembly info (not autogenerated) with
#if NET6_0
[assembly: System.Runtime.Versioning.SupportedOSPlatform("windows7.0")]
#endif