I have an issue here with converting an existing SDL_Surface into an OpenGL texture.
The texture gets created, but it's a plain white texture, below is a screenshot of the result:

It seems to me that the SDL_Surface image data is not being properly cast onto the OpenGL texture. But I'm unsure why. Below is another screenshot, showing the image data of the "Loaded_Image", which is the existing SDL_Surface.

I'm just a bit unsure where I'm going wrong. The code seems alright to me:
SDLib::Image SDLib::ConvertImage(SDL_Surface* surface)
{
SDL_Surface *LoadedImage = NULL;
GLuint tempTexture;
Image tempImage;
LoadedImage = surface;
//Set Width/Height Of Image
tempImage.width = LoadedImage->w;
tempImage.height = LoadedImage->h;
SDL_Surface *image = SDL_CreateRGBSurface(0, LoadedImage->w, LoadedImage->h, 16, 0xff000000, 0x00ff0000, 0x0000ff00, 0x000000ff);
SDL_BlitSurface(LoadedImage, NULL, image, NULL);
glGenTextures(1, &tempTexture);
glBindTexture(GL_TEXTURE_2D, tempTexture);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, GL_BGRA, image->w, image->h, 0, GL_BGRA, GL_UNSIGNED_BYTE, image->pixels);
//Finally Set The TempTexture data for our OpenGl Texture to the Temporary Image Struct
tempImage.texData = tempTexture;
return tempImage;
}
The image itself it supposed to rendering out like this for reference:

