Upgrade to latest 12.x or 14.x that should fix your issue I think.Async hooks | Node.js v12.22.12 Documentation
I'm trying to enable animated GIFs on my NodeBB. I installed and enabled the Image Magick extension: https://github.com/NodeBB/nodebb-plugin-imagemagick
NodeBB uses a js-only alternative, which may be slower, or less featureful. Additionally, animated gifs are supported with ImageMagick, while they are not supported in the bundled version.
NodeBB v1.0.0 or a suitably recent version
None, just install and activate."
But I'm unable to upload GIFs still.
Look at the only open issue: https://github.com/NodeBB/nodebb-plugin-imagemagick/issues/7
It doesn't work anymore and didn't for more than a year
And a little more context than "cropper broke it":
The NodeBB gets image from cropperjs using
cropper.getCroppedCanvas(). This utilizes
CanvasRenderingContext2D.drawImage() - and this doesn't support animated files. Depending on the browser that means the cropper will send only the first or the last frame of the gif.
There is a way to overcome this problem, but it adds complexity and requires additional dependencies. Basically, the cropper has to have a fallback for animated images, where if one is detected instead of
croppper.getData() is used and the data from it along with the original animated image is passed to another (probably back-end) software that works with gifs - for example ImageMagick.
So the problem with this plugin is in the front-end and a fix would require some changes to how cropper works in core NodeBB.
@oplik0 Thanks, good to know it's broken. Kinda sucks this doesn't work, hope someone can bounty a fix or the extension gets repaired soon.
I doubt it, as repairing it would require either:
Option 2 sounds like the best, but it will require some work and take some time probably (not just to add it to NodeBB, but also time waiting for next release). I think the best way to do it would be to add a fallback for gifs (that is - with animated gifs js will send the unmodified image and data from cropper, so backend can work with it) and a filter hook that fires after that fallback.
Then NodeBB wouldn't need another dependency and you could choose what to use for parsing gifs.
But again - that requires some work and time, and I don't think it's really a priority for NodeBB team so someone from the community would have to contribute
Good news guys, GIFs are back!!! https://github.com/NodeBB/NodeBB/commit/9a7560049a33e7586faa14942c06c0705d06ce6f
Make sure you have nodebb-plugin-imagemagick installed on your NodeBB. Imagemagick also needs to be installed on your server.
Cannot upvote this enough!!