SixLabors / ImageSharp

:camera: A modern, cross-platform, 2D Graphics library for .NET
https://sixlabors.com/products/imagesharp/
Other
7.35k stars 850 forks source link

Library Inter-op extensions #435

Open tocsoft opened 6 years ago

tocsoft commented 6 years ago

ImageSharp should provide an initial standard structure for adding library inter-op apis.

Maybe we just need to provide a System.Drawing version (as a new package SixLabors.ImageSharp.InterOp.SystemDrawing) but would then allow third party developers to be able to follow common patterns to allow them

vpenades commented 6 years ago

Microsoft has recently released System.Drawing.Common , which is a cross platform and NetStandard compatible package of the classic NetFX exclusive System.Drawing.Bitmap namespace.

So maybe it's worth to take into account too... but, as @saucecontrol commented here ... maybe not.

saucecontrol commented 6 years ago

The sad thing is, the majority of devs will continue using System.Drawing because that's what they know. And a large percentage of them will take a Microsoft-authored package over literally anything else. One could at least hope that easy integration and a couple of unique features would tempt some devs to dip a toe in the ImageSharp waters. Maybe then they'll see the light :)

vpenades commented 6 years ago

@tocsoft There's much more image interops than just these, and imho, some critical ones that are worth of attention;

JimBobSquarePants commented 6 years ago

We're only writing these to help migration. I think it's up to individual library providers to create interop solutions. DirectX, OpenGL and Vulkan textures are going to be included in gaming engines and will be specific to their API's.

Veldrid for example has managed it without us having to write a line of code.

hansmbakker commented 4 years ago

It would be very helpful if this was provided out of the box like SkiaSharp does: https://github.com/mono/SkiaSharp/blob/master/source/SkiaSharp.Views/SkiaSharp.Views.UWP/UWPExtensions.cs