Live data from Hacker News

.NET Core Image Processing

blogs.msdn.microsoft.com

31–40 of 70 posts

Re: .NET Core Image Processing

#31

Nice post. Looks like I'll need to update the compatibility list: https://github.com/jpsingleton/ANCLAFS#image-manipulation 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.

Nice list. Any idea on the status of IronPython? Is there any road map on getting it into Core?

Re: .NET Core Image Processing

#32

Great to see the positive comments here. ImageSharp is my baby and it fills me with a lot of confidence that it's something that developers both want and need.

Great to see a more generic pure-.NET image processing library. When I was doing this 5 years ago we basically had AForge.NET which was focused more on correctness of algorithms than speed. I tried to leverage that, but instead ended up with a totally custom image processing pipeline instead -- oh the battles with the GC and unsafe code...

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?

Re: .NET Core Image Processing

#33
post #3

This might sound like a small thing but the .NET image processing stuff has traditionally depended a lot on Windows builtins. Mono shipped an entire mediocre rewrite of GDI (the graphics layer that's been Windows since the early nineties) just to support the .NET Framework image processing stuff. Note: not for image display (which is what GDI is mainly for) - even for headless image processing. In practice this meant…

This makes sense as System.Drawing (aka GDI+) was mainly used for WinForms and has never been supported for web servers. I suspect Mono ported it to support their Windows Forms port.

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/

Re: .NET Core Image Processing

#34
post #23

Earlier quoted context omitted.

Why would you expect negative comment? .NET Core is a solid platform for web development. It's easy to deploy and relatively fast compared to the usual Python/Ruby/PHP and co... only matched by Java(controlled by Oracle) and Go(which is obnoxious). .NET Core is growing at a fast pace, and it deserves it, C# and F# are phenomenal languages.

This isn't my first rodeo with Hacker News, I've unfortunately had negative responses before when sharing my work.

[deleted]

Re: .NET Core Image Processing

#35
post #23

Earlier quoted context omitted.

Why would you expect negative comment? .NET Core is a solid platform for web development. It's easy to deploy and relatively fast compared to the usual Python/Ruby/PHP and co... only matched by Java(controlled by Oracle) and Go(which is obnoxious). .NET Core is growing at a fast pace, and it deserves it, C# and F# are phenomenal languages.

This isn't my first rodeo with Hacker News, I've unfortunately had negative responses before when sharing my work.

Thank you for your work! I used it with a client that had a System.Drawing impl. Just making thumbnails of uploaded images. It actually was our CPU bottleneck! And then it started crashing when load was high, making us drop or reprocess (which added more load and drops...).

With your lib and a few hours of work, all that disappeared and CPU went way down. Thanks!

On a side note, users should try to send gratitude to open source authors in general. I know it's hypocritical of me, since I didn't take the time to email you before this! I've done it a few times in the past and the replies I've received indicated that I was the only one to ever thank them! That sucks. I've written some stuff I know more than a few companies built entire products and services with -- I've received about 2 notes in 6-7 years. It's not much but just a bit of thanks really provided motivation.

Cheers to you.

Re: .NET Core Image Processing

#36
Why wasn't Pixman/Cairo tested but Skia was tested? I'm sure it has to do with the natural availability of these things on .NET but I just checked and Cairo still has binding pre and post Mono. I would consider this option strongly there is way more support for Cairo in just about everything than Skia.

Re: .NET Core Image Processing

#37
Google's library destroys in benchmarks, but quality and filesize is lower which suggests to me it wasn't a fair test.

The quality settings should have been standardised to human-perceived image quality, given that's the purpose of an image.

Re: .NET Core Image Processing

#38

Great to see the positive comments here. ImageSharp is my baby and it fills me with a lot of confidence that it's something that developers both want and need.

Cool. I'm assuming you do a lot of matrix operations, so I'm wondering if you've come across the Matrix type in Math.Net?; It has plug-in 'providers' for concrete implementations, and there are providers that are backed by Intel MKL, OpenBLAS, ATLAS, CUDA, etc.

If you don't register a provider you just get plain .NET code running serially (though it may user Vector in future versions).

See:

https://github.com/mathnet/mathnet-numerics/tree/master/src/...

Re: .NET Core Image Processing

#39
What are the best resources for someone who wants to move from .NET desktop development to .NET web development? All the popular sites like Udacity and FreeCodeBootcamp rarely (if ever) touch the MS stack.

I know this isn't exactly the right place to ask, but I've had no luck anywhere else...

Re: .NET Core Image Processing

#40

What are the best resources for someone who wants to move from .NET desktop development to .NET web development? All the popular sites like Udacity and FreeCodeBootcamp rarely (if ever) touch the MS stack. I know this isn't exactly the right place to ask, but I've had no luck anywhere else...

I don't know of any reliable tutorials, but if you want to try jumping into a project, you can download Umbraco and follow some basic 'Getting Started' guides. Some of what you will learn is Umbraco-specific, but you'll also see a lot of how .NET likes to do things for web projects.

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/

Post reply on HN