In practice this meant that if you were cropping an image server-side in C# code on a Linux server, a C-rewrite of a Windows UI layer would kick in and do the work for you. Amazing work from the Mono team, because it worked, but also pretty nuts.
If there's one place I remember having stuff that "just worked" on Windows and had weird subtle quirks on Mono, it's image processing (I'm talking a few years ago). So IMO it's pretty awesome that they're replacing all that legacy with a decent 100% .NET image processing library.
(Sidenote: this was also the only real problem we faced developing a C# backend with a team on Windows, Linux and OSX computers, and running it all on Mono on Docker on Linux - all well before .NET Core. Mono really is/was that good)
Note: libgd is a well designed native library with design emphasis on simple interop wrappability.
It may just work on Windows but it won't keep working when used server-side in a web app. MS specifically recommend against using it in ASP.NET. I learned the hard way what happens if you ignore the warnings when I was supporting a site that did this.
Edit: I wrote about image optimization and resizing in chapter four of my book on ASP.NET Core - https://unop.uk/book/
If you don't register a provider you just get plain .NET code running serially (though it may user Vector<T> in future versions).
See:
https://github.com/mathnet/mathnet-numerics/tree/master/src/...
Out of curiosity what is your overall vision for the library? Are you looking for a System.Drawing high-level API or more of an OpenCV-like low-level API?
I have also created a generic image pipeline Image<TColor> that uses all the packed pixel color models used in XNA and Monogame which make it useful in gaming for loading textures.
The dream is that eventually the community will help port a lot of the algorithms over from libraries like Accord, OpenCV and AForge to allow usage in more scientific scenarios. Some of them will fit in the fluent API most will not but the tools should already be within the library to allow porting and usefulness.
On the other hand ImageSharp is convinient, and the author is a nice helpful, responsive guy. I totally suggest using his library. When I needed it once for mono, though then it did not meet my needs, Mr. South was really helpful. Eventually I had to stick to manually wrapping libgd, but I'm about to revisit that code and change it to use a new ImageSharp version! (Also the fluent APIs make working with images using that lib pretty awesome!)
So what I mean by this: in my opinion occluding the real API is probably a feature of Magiic.net. Still I do not like if a library needs systemwide install and config files, etc, as ImageMagick/GraphicsMagic does. Maybe the creators of these libs have solved the portability problems created by this, but I'm disgusted by these native libraries, and I avoid them. (Back then the one wrapper I tried needed a systemwide install of imagemagick. A click through wizard needing administrative rights, instead of dropping a dll into the PATH or the program directory... Also it has config files. Config files.. for a library. IMHO this is insane! It is a good approach to configure apps by config files. Libraries should be configured by API calls, or build time constants.)
Having custom build scripts for 3rdparty code is a huge work to keep up to date which will always lag behind, thus the security will also lag behind. On the other hand this is needed to solve the portability issues of the native parts. I find this approach unproductive, but wish the maintainers the best.
NB: You shouldn't use System.Drawing in a web app. It can lead to memory leaks and lots of pain. Even the newer WPF equivalents are not safe for use on a web server.
Any of the ones listed in the article?
P.S. There used to be a separate website but since GH broke how pages work the domain now just redirects to the repo.
I know this isn't exactly the right place to ask, but I've had no luck anywhere else...
Looking at the courses available, I would probably start with: https://mva.microsoft.com/en-US/training-courses/getting-sta...
then look into either ASP.NET MVC: https://mva.microsoft.com/en-US/training-courses/introductio...
or ASP.NET Core: https://mva.microsoft.com/en-US/training-courses/intermediat...
This is coming from someone that hasn't actually used these, so take my recommendations with a grain of salt.
Alternatively, you can just get Visual Studio and use their "ASP.NET Web Application" template and poke through what is generated, if you want something a bit smaller to start with.
Links:
Umbraco: https://umbraco.com/
Getting Started Guide: https://our.umbraco.org/documentation/Getting-Started/
>Components rely on GDI API may not work on Azure Websites. The workaround is moving to Azure Web Role. (If you are using the ReportViewer control, we have enabled PDF generation for most applications.)
[1] https://social.msdn.microsoft.com/Forums/en-US/6ed5c738-390a...
I'm so happy to read that they've gotten the image processing piece in place.
A while ago, on a bit of a lark and to see if I could, I started trying to port a copy of selenium webdriver to DNC and was initially surprised bow how successful I was in getting it to compile and build.
For the most part it was just re-pointing namespaces to their new locations.
When I got to the piece about image processing I hit a wall.
Maybe I'll take that on again sometime.
What do you mean ? DX is Windows specific, .NET core is cross platform. And DX doesn't even have official .NET bindings on full .NET AFAIK.
OTOH I'm sure SharpDX and the likes could be ported (if it already isn't - this : https://github.com/sharpdx/SharpDX/issues/520 suggest it should work but I haven't tried it)
I am the only one who absolutely hates charts like [0]these? Like what are those numbers on top, why it has no legend? Is it CPU utilization, miliseconds, seconds (maybe it was done over 1000 images or so)?
[0] - https://msdnshared.blob.core.windows.net/media/2017/01/Resiz...
I was initially confused by the chart and yes the text (and following table) make the units clear, but the chart should be standalone.
The quality settings should have been standardised to human-perceived image quality, given that's the purpose of an image.
I've heard MathNet.Numerics has a plan to add it, but so far there seems to not have been much progress.