OK so you’ve already got a picture that’s 24bpp RGB and 8bpp alpha = 32bpp total.
OpenGL doesn’t support any particular file format like TIF or TGA or whatever. Whatever file format you choose you’ll have to use your own code to load it in. To start with try using a simpler file format like RAW. After you’ve loaded the file keep the width and height info tucked away, discard the header info and keep the image bits.
Enable transparency testing with glEnable(GL_ALPHA_TEST) and setup the transparency test with glAlphaFunc(GL_GREATER,0). This test will draw any pixel that is not black. There are other tests too. Use glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, pImageBits ) to draw the image.
Remember to disable GL_ALPHA_TEST when done.
If your image shows up essentually correct but looking real ugly try replacing the 7th parameter from glTexImage2D with GL_BGRA_EXT.
If your picture looks like static you may need to change your row alignment with glPixelStorei(GL_UNPACK_ALIGNMENT,???).
After you get it going look into using glBindTexture with glTexImage2D.