While I'd love to indulge myself in that compliment, it's actually much simpler than I'd expected. You just run through each pixel of 2 images, mash up the ARGB values, and spit out a new image. If anyone's curious, here's the code:
Bitmap newBmp = new Bitmap(bmpAlpha.Width, bmpAlpha.Height);
for (int x = 0; x < bmpAlpha.Width; x++) {
for (int y = 0; y < bmpAlpha.Height; y++) {
Color alphaColor = bmpAlpha.GetPixel(x, y);
Color colorColor = bmpColor.GetPixel(x, y);
Color newColor = Color.FromArgb(alphaColor.A, colorColor.R, colorColor.G, colorColor.;
newBmp.SetPixel(x, y, newColor);
}
}
The .Net framework makes this problem super easy. The only downside is it only works with images of the same dimension, but that wouldn't be too hard to fix. However, doing this in Paint.Net is way more versatile, quick, and easy.