SDL_Surface *screen; // Superficie SDL
SDL_Surface *pic; // Imagen principal
SDL_Surface *sdlpic; // Imagen de la leyenda SDL
SDL_Event event; // Evento para cerrar programa
char *salvar;
// Ruta y nombre de la imagen final
salvar = "C:/WINDOWS/Escritorio/nuevaspracticas/salvarbmp/iend.bmp";
if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) == -1) // Inic. vide
{ // & audio
printf("Error: %s\n", SDL_GetError());
return 1;
}
// Creamos una superficie SDL
screen = SDL_SetVideoMode(480, 350, 16, SDL_HWSURFACE);
if (screen == NULL) // Verificar que se cree la superficie
{
printf("Error: %s\n", SDL_GetError());
return 1;
}
// Cargar imagen principal BMP
pic=SDL_LoadBMP("C:/WINDOWS/Escritorio/nuevaspracticas/salvarbmp/van.bmp");
// Cargar la imagen con la leyenda "SDL"
sdlpic=SDL_LoadBMP
("C:/WINDOWS/Escritorio/nuevaspracticas/salvarbmp/SDL.bmp");
if (pic == NULL) // Verificar si se carga la imagen principal
{
printf("Error en IMG_Load= %s\n", SDL_GetError());
return 1;
}
if (sdlpic == NULL) // Verificar si se carga la leyenda
{
printf("Error en IMG_Load= %s\n", SDL_GetError());
return 1;
}
SDL_Rect rect = {310, 3, 0, 0}; // Declaramos estructura SDL_Rect
// Pegamos la imagen principal a la superficie SDL
SDL_BlitSurface(pic, NULL, screen, NULL);
// Pegamos la leyenda a la principal establecida en la sup. SDL
SDL_BlitSurface(sdlpic,NULL,screen,&rect);
// Creamos una nueva imagen BMP compuesta por las dos imagenes
SDL_SaveBMP(screen, salvar);
while (SDL_WaitEvent(&event)) // Aqu? se cierra la ventana
{
if (event.type == SDL_QUIT)
break;
}
SDL_FreeSurface(screen); // Liberamos memoria utilizada
SDL_FreeSurface(pic); // Liberamos memoria utilizada
SDL_FreeSurface(sdlpic); // Liberamos memoria utilizada
SDL_Quit();
return 0;
}