The SDL forums have moved to discourse.libsdl.org.
This is just a read-only archive of the previous forums, to keep old links working.


SDL Forum Index
SDL
Simple Directmedia Layer Forums
¿How save a jpeg file with SDL_image?
Marqués del valle de ...
Guest

Sombady know how save a image file with the +.jpeg format

?is it posible?

Because i use the following code for load and save a BMP file, but i wanto to
do the same thing with a JPEG file.
if anybody can help me, very thanks.


#include <stdio.h>
#include <stdlib.h>
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
#include <SDL/SDL_mixer.h>

int main(int argc, char *argv[])
{

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;
}