Skip to content

Update SkiaSharp from 2.88.8 to 3.119.2#7582

Draft
Copilot wants to merge 3 commits intomainfrom
copilot/update-skiasharp-version
Draft

Update SkiaSharp from 2.88.8 to 3.119.2#7582
Copilot wants to merge 3 commits intomainfrom
copilot/update-skiasharp-version

Conversation

Copy link
Contributor

Copilot AI commented Feb 18, 2026

SkiaSharp 3.x removed SKBitmap.GetPixelSpan() and obsoleted SKFilterQuality, causing MissingMethodException at runtime when users bring in SkiaSharp ≥3.0 alongside Microsoft.ML.ImageAnalytics.

Changes

  • Version bump: SkiaSharpVersion 2.88.8 → 3.119.2 in eng/Versions.props
  • Explicit package reference: Added <PackageReference Include="SkiaSharp" /> to the csproj — SkiaSharp 3.x native asset packages no longer transitively pull in the managed library
  • GetPixelSpan() removal (the crash site): Replaced with unsafe span over GetPixels() pointer:
    // Before
    return _image.GetPixelSpan();
    // After
    return new ReadOnlySpan<byte>(_image.GetPixels().ToPointer(), _image.ByteCount);
  • SKFilterQualitySKSamplingOptions:
    • ResizeFull: SKFilterQuality.Nonenew SKSamplingOptions(SKFilterMode.Nearest)
    • ResizeWithPadding/ResizeWithCrop: Replaced SKPaint.FilterQuality = High + DrawBitmap with DrawImage + SKSamplingOptions(SKCubicResampler.Mitchell) for equivalent high-quality resampling
    • CloneWithGrayscale: Removed obsolete FilterQuality property from SKPaint

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • 5dkvsblobprodcus355.vsblob.vsassets.io
    • Triggering command: /home/REDACTED/work/machinelearning/machinelearning/.dotnet/dotnet dotnet build src/Microsoft.ML.ImageAnalytics/Microsoft.ML.ImageAnalytics.csproj (dns block)
    • Triggering command: /home/REDACTED/work/machinelearning/machinelearning/.dotnet/dotnet dotnet restore src/Microsoft.ML.ImageAnalytics/Microsoft.ML.ImageAnalytics.csproj (dns block)
  • dnceng.pkgs.visualstudio.com
    • Triggering command: /home/REDACTED/work/machinelearning/machinelearning/.dotnet/dotnet dotnet build src/Microsoft.ML.ImageAnalytics/Microsoft.ML.ImageAnalytics.csproj (dns block)
    • Triggering command: /home/REDACTED/work/machinelearning/machinelearning/.dotnet/dotnet dotnet restore src/Microsoft.ML.ImageAnalytics/Microsoft.ML.ImageAnalytics.csproj (dns block)
    • Triggering command: /usr/bin/curl curl -s -o /dev/null -w %{http_code} REDACTED (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Original prompt

This section details on the original issue you should resolve

<issue_title>Update to latest version of SkiaSharp</issue_title>
<issue_description>System Information (please complete the following information):

  • OS & Version: Windows 10
  • ML.NET Version: ML.NET v4.0.2
  • .NET Version: .NET 8.0

Describe the bug

In https://github.com/dotnet/machinelearning-samples, open ObjectDetection project, explicitly depend on SkiaSharp package 3.116.1, run, and observe failure:

=====Identify the objects in the images=====

System.InvalidOperationException: Splitter/consolidator worker encountered exception while consuming source data
 ---> System.MissingMethodException: Method not found: 'System.ReadOnlySpan`1<Byte> SkiaSharp.SKBitmap.GetPixelSpan()'.
   at Microsoft.ML.Data.MLImage.get_Pixels()
   at Microsoft.ML.Transforms.Image.ImagePixelExtractingTransformer.Mapper.<>c__DisplayClass5_0`1.<GetGetterCore>b__1(VBuffer`1& dst)
   at Microsoft.ML.Transforms.Onnx.OnnxTransformer.Mapper.NamedOnnxValueGetterVec`1.GetNamedOnnxValueCore()
   at Microsoft.ML.Transforms.Onnx.OnnxTransformer.Mapper.NamedOnnxValueGetterVec`1.GetNamedOnnxValueKnownSize()
   at Microsoft.ML.Transforms.Onnx.OnnxTransformer.Mapper.NamedOnnxValueGetterVec`1.GetNamedOnnxValue()
   at Microsoft.ML.Transforms.Onnx.OnnxTransformer.Mapper.UpdateCacheIfNeeded(Int64 position, INamedOnnxValueGetter[] srcNamedOnnxValueGetters, List`1 activeOutputColNames, OnnxRuntimeOutputCacher outputCache)
   at Microsoft.ML.Transforms.Onnx.OnnxTransformer.Mapper.<>c__DisplayClass14_0`1.<MakeTensorGetter>b__0(VBuffer`1& dst)
   at Microsoft.ML.Data.DataViewUtils.Splitter.InPipe.Impl`1.Fill()
   at Microsoft.ML.Data.DataViewUtils.Splitter.<>c__DisplayClass7_1.<ConsolidateCore>b__2()
   --- End of inner exception stack trace ---
   at Microsoft.ML.Data.DataViewUtils.Splitter.Batch.SetAll(OutPipe[] pipes)
   at Microsoft.ML.Data.DataViewUtils.Splitter.Cursor.MoveNextCore()
   at Microsoft.ML.Data.RootCursorBase.MoveNext()
   at Microsoft.ML.Data.ColumnCursorExtensions.GetColumnArrayDirect[T](IDataView data, Int32 col)+MoveNext()
   at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext()
   at System.Linq.Enumerable.TryGetElement[TSource](IEnumerable`1 source, Int32 index, TSource& element)
   at System.Linq.Enumerable.ElementAt[TSource](IEnumerable`1 source, Int32 index)
   at ObjectDection.Program.Main(String[] args) in C:\Projects\Intermediate\machinelearning-samples\samples\csharp\getting-started\DeepLearning_ObjectDetection_Onnx\ObjectDetectionConsoleApp\Program.cs:line 43
========= End of Process..Hit any Key ========

Root cause is ImageAnalytics.

To Reproduce
Steps to reproduce the behavior:

  1. Download and use https://github.com/dotnet/machinelearning-samples
  2. Open samples\csharp\getting-started\DeepLearning_ObjectDetection_Onnx\ObjectDetectionConsoleApp.ObjectDetection.csproj
  3. Use NuGet to explicitly install SkiaSharp version 3.116.1
  4. Run
  5. Fail

Expected behavior

Shouldn't fail or are there alternatively/ways to configure?
Also the package dependency of ML.Net.ImageAnalytics claims SkiaSharp >2.88

Screenshots, Code, Sample Projects
See log error above.

Additional context
I am using ML.Net in a project that already depends on SkiaSharp explicitly.
</issue_description>

Comments on the Issue (you are @copilot in this section)


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI and others added 2 commits February 18, 2026 22:03
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
Copilot AI changed the title [WIP] Update to latest version of SkiaSharp Update SkiaSharp from 2.88.8 to 3.119.2 Feb 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update to latest version of SkiaSharp

2 participants

Comments