int main(int argc, char** argv){ if(argc < 3){ std::cout << "usage:"<<std::endl; std::cout << "composite [foregroundImagename] [backgroundImagename]" << std::endl; std::cout << "or" <<std::endl; std::cout << "composite [foregroundImagename] [backgroundImagename] [outputIMagename]" << std::endl; exit(-1); } FileIO::getInstance().readFromFileToImage(foreImage, argv[1]); FileIO::getInstance().readFromFileToImage(backImage, argv[2]); imageToBeOutput = foreImage.over(backImage,0,0); display_data = new GLubyte[imageToBeOutput.getWidth()*imageToBeOutput.getHeight()*4]; imageToBeOutput.displayOutput(display_data); if(argc>3){ FileIO::getInstance().writeImageToFile(imageToBeOutput,argv[3]); } glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGBA); glutInitWindowSize(imageToBeOutput.getWidth(), imageToBeOutput.getHeight()); glutInitWindowPosition(0, 0); glutCreateWindow(argv[0]); init(); glutDisplayFunc(display); glutMainLoop(); return 0; }