Good library. API can be a bit quirky. Like if you want to read image size before and/or after a resize or if you do or don't want to respect the image orientation/rotation in the image meta data. I usually have to convert to a buffer and then back to Sharp again for it to reload the changes but it works!
Been using (and occasionally contributing to) Sharp for quite a while, both professionally and personally. Great library to have at hand when you need to deal with images.
It is an amazing library! Been using it for years. It is used in a number of projects I've created including https://benhouston3d.com and https://threekit.com for auto image resizing, format conversion and optimization.
Lots of ways to do this but generally you attach a Lambda function to an origin response. If the path meets specific conditions (is 404/403, contains specific query string param) then run the Lambda function.
So imagine if you have:
original.jpg
Then just return it from the origin.
But imagine if you have original.jpg?size=150
Run the Lambda function (in this case a Sharp resize function) on the original.jpg file and return it. It'll get cached so the next time someone calls original.jpg?size=150 it just return the 150px width image without running any function as there was never a need to hit the origin.
Good library. API can be a bit quirky. Like if you want to read image size before and/or after a resize or if you do or don't want to respect the image orientation/rotation in the image meta data. I usually have to convert to a buffer and then back to Sharp again for it to reload the changes but it works!
Been using (and occasionally contributing to) Sharp for quite a while, both professionally and personally. Great library to have at hand when you need to deal with images.
Also worth mentioning libvips[0] the underlying engine behind sharp. We use the golang wrapper at work and love the simplicity and speed (ofc)
[0]https://github.com/libvips/libvips
It is an amazing library! Been using it for years. It is used in a number of projects I've created including https://benhouston3d.com and https://threekit.com for auto image resizing, format conversion and optimization.
Been using this forever in CloudFront behaviors to auto-resize images. Thanks for the work, Sharp!
We're doing the same! The Lambda function also has an authentication layer, so we can protect user-uploaded assets.
Interesting! Can you tell me more how you use CloudFront (cache) behaviours with sharp?
Lots of ways to do this but generally you attach a Lambda function to an origin response. If the path meets specific conditions (is 404/403, contains specific query string param) then run the Lambda function.
So imagine if you have:
original.jpg
Then just return it from the origin.
But imagine if you have original.jpg?size=150
Run the Lambda function (in this case a Sharp resize function) on the original.jpg file and return it. It'll get cached so the next time someone calls original.jpg?size=150 it just return the 150px width image without running any function as there was never a need to hit the origin.
Sharp is great. Used it at projects at scale and it never let me down.