For erasing things, there are a few options:
You can use Enum.ImageCombineType.Override and a transparency of 1 with EditableImage:DrawCircle or EditableImage:DrawRectangle.
For something like EditableImage:DrawProjectionImage you can use Enum.ImageCombineType.Multiply and Enum.ImageAlphaType.LockCanvasColor with pixels with no alpha where you want to erase them.
A more explicit erase option is something we could consider but I’m slightly worried about some inconsistency in how it would work for the primitive drawing methods vs the more advanced drawing methods might make it confusing.
Custom combine types would be hard to implement in way that wouldn’t have too much performance overhead for crossing the C++ to Lua bridge for every pixel.
How would I use Enum.ImageAlphaType? I was assuming at first that it would be included in the options dictionary for EditableImage:DrawImageTransformed, but at the moment its usage is not documented anywhere.
ColorSequences can store 20 different color values. So if you make the gui 20 pixels long then each “part” of the gradient is perfectly distanced. I assumed it would have some weird interpolation issues but no it’s looks great.
When it comes to the EditableImage memory limits, how does it apply to client-side only objects? Say I use up the memory on one client for UI, would another client be affected by those limits?