umbraco / Umbraco-CMS

Umbraco is a free and open source .NET content management system helping you deliver delightful digital experiences.
https://umbraco.com
Other
4.49k stars 2.69k forks source link

Replace ImageProcessor #6645

Closed NikRimington closed 5 years ago

NikRimington commented 5 years ago

Image processor is in a soft sunset according to the git repo. As part of this it is no longer in active development despite known issues with Azure. Since Umbraco v8 came out, I've been experiencing issues with Image Processor around the "Black PNG" issue and there is no fix in site.

Is it worth reconsidering the dependency on Image Processor and replacing it with a new image processing engine in the the not so distant future?

For reference on the Image Processor issues:

https://github.com/JimBobSquarePants/ImageProcessor/issues/747 https://github.com/JimBobSquarePants/ImageProcessor/issues/713 https://github.com/JimBobSquarePants/ImageProcessor#roadmap

nul800sebastiaan commented 5 years ago

As I understand it, the problem is to be found in a postprocessor that we don't install by default?

I would say we have no plans to replace ImageProcessor with anything else at the moment, the library works really well and sometimes a dependency is just "done". If no future development happens then that can be absolutely okay, as long as it does what it did before, we don't currently have a need for new features and there are no real bugs in the version that we take a dependency on.

NikRimington commented 5 years ago

That's fair enough.

I raised this because I've been getting the "black png" issue on v8 sites running on Azure Web Apps without Post Processor. My knowledge on the imagine issue is limited, but from what I can tell it's the same behaviour but I could easily be mistaken. (I do need to investigate this some how).

The other bit that made me raise it was knowing that it uses System.Drawing behind the scenes and that isn't supported on ASP.Net according to the Microsoft Docs: https://docs.microsoft.com/en-us/dotnet/api/system.drawing?view=netframework-4.8#remarks

So wondered, if moving to something newer would be worth considering.

Shazwazza commented 5 years ago

System.Drawing has been the only available thing to use in .Net since it's inception, MS have been well aware that GDI+ on the server isn't good but they've made no effort to fix that and people around the world have just continued to use System.Drawing (GDI+). Even in .NET Core they've made no effort to fix this until very recently but their attempt at wrapping System.Drawing is still using GDI+ on windows. However at least in .NET core there are alternatives like James's own ImageSharp but it's not something that we are planning to just 'swap' out for the CMS at this stage and while Umbraco is still running on .NET Framework. The issue is probably not with System.Drawing itself, it is probably some crazy issue of the logic calling it.

At some stage when Umbraco is running on .NET Core, we will have our own abstractions so you can replace the imaging. In the meantime, if there is some other image library that you want to use, there is nothing stopping your from rendering your own image crops/etc... with any framework you like.

NikRimington commented 5 years ago

Cool, no worries :-) Thanks for your response :-)