You are an experienced programmer and have a problem with the engine, shaders, or advanced effects? Here you'll get answers. No questions about C++ programming or topics which are answered in the tutorials!
You have to mask the alpha bits (depending on the color type either 0x8000 or 0xFF000000) and iterate over all pixels, merging the new alpha with the old color. You cannot avoid byte operations here.
nice diamonds where did you get them?
BTW, you can use alpha channel of another texture without byte work - just create your own material and set color texture as first and alpha as second and make a bunch of right pID3DDevice8->SetTextureStageState(0/ 1/ 2, ...); (assuming you are using DX)
video card will do the rest. it is useful when you want to use the same alpha with different color textures
Yes alpha mask materials tend to be useful, but that's even more work - and requires decent knowledge of D3D and OpenGL (if you really want to make it portable).
Shaders are even easier than materials. Just set the 2 textures, set the color from the first texture and then set the alpha of the pixel based on the color in the 2nd texture.
Easiest way though, would be to create the image as a TGA and make the black background transparent.