The Get Flat Icon library flattens an object's appearance into a single dynamic icon at runtime. The icon can then easily be shown in a browser, output, label, ect.
The library fully supports all types of overlays: icon files, icon states, objects, object types, images, dynamic icons, and images with dynamic icons. It correctly handles inheriting the icon, icon_state, and dir* from the base mob; as well as FLOAT_LAYER. It can even handle pixel_x/y values that move overlays outside of the base icon's bounds.
The library also has a fully functional cache, to avoid flattening the same icon twice.
(*note: there is a limitation with the dir variable where the library cannot distinguish between an overlay that inherits its direction from its parent and one that is set to face SOUTH. If an overlay's direction is set to SOUTH, the library will always assume it inherits from the parent)