Image Clipping Module

I want to support non-square images. Currently, any non-square image gets stretched, as Decals do not support any other form of image wrapping.

The downside to Decals on MeshParts is that they distort to the part’s size. Thanks to the method shared by @Reselim, I can easily modify the code to handle parts of varying sizes, and then I’d simply have to size the mesh based on the image’s aspect ratio.

However, I don’t know how to get image aspect ratio from an asset id. Is there a method or API call that I am unaware of, or will I have to add another argument .new() in which the user passes the ratio.
I’d much prefer the module handles it automatically, so please let me know!

EDIT:
Apparently, you have to use external HTTP work to get it. I’ve found this amazing plugin by @evaera that gets the image dimension with an HTTP request.
However, HTTP requests can only be handled by the server, whereas this module is client-sided. To get around this, I’d have to create a remote event system. It’s not complicated, but it would transform this project from a simple plug-n-play module to a system requiring some setup.