JPG doesn't have alpha layers In C++, if you are willing to assume you would be drawing the PNG image on a black background, look up AlphaBlend. You could draw the PNG to a bitmap or just create a 24 bit image using the raw bytes. The BLENDFUNCTION documentation has a chart of the multipliers you need to use. It looks confusing, but is rather straightforward once you think about it. I'm not sure the equivalent of AlphaBlend in C# (outside of the DirectX classes.) Again, if you assume the background, you could do it yourself. http://msdn.microsoft.com/en-us/library/aa452889.aspx[^]