Rescaling an image with a transparent background results in black fringing around the image. This occurs due to the bilinear rescaling algorithm used by Roblox and is explained in detail in the link below:
Expected behavior
When rescaling an image with a transparent background, no fringing should occur. The fringing can be eliminated by improving the Roblox image scaling algorithm to better take into account transparent backgrounds.
The solution in the article does work, but it is impractical. I have hundreds of images that I would need to convert, upload, and then update in all my games.
Ideally, the Roblox algorithm should be smart enough to handle transparent backgrounds better. Perhaps you can add a āDefringeā checkbox property to images that would apply the improved algorithm. That way, everything is backwards compatible, and the new algorithm is only applied if checked.
I made a post about this mentioning a Unity parallel a while back FWIW. This is not just a Roblox problem, but Roblox seems to be the only one not helping developers out with it.
To fix this at runtime though I expect might be prohibitively expensive. That would have to be a constant filter done over every image.
This phenomenon, as youāve noted, stems from the limitations inherent to the bilinear rescaling algorithm we use. While we currently expect developers to address this with Color Bleeding tools, we understand this isnāt an ideal solution for every case, especially considering the practical challenges involved in converting and updating large numbers of images.
In response to your suggestion of a āDefringeā checkbox, we appreciate the innovative thinking. Implementing a more refined algorithm that specifically targets alpha transparent images is indeed a potential path forward. It aligns with our interest in exploring Pre-multiplied Alpha Textures, a concept we find promising and would like to investigate further.
Though these solutions are not on our immediate roadmap due to past technical complexities and work scope, we recognize that these challenges are becoming increasingly manageable. We remain open to considering these improvements in future updates, aiming to offer more robust tools for our developers.
We have been discussing this issue internally, but unfortunately I canāt promise any specific solution or timeline at the moment.