C/Visual C - crear imagen.BMP

 
Vista:

crear imagen.BMP

Publicado por salserjo (11 intervenciones) el 16/05/2001 19:01:37
Hay alguna funcion para crear una archivo .bmp a partir de algo asi: void *image ??...si no es alguna funcion , alguien puede explicarme como hacerlo??
GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

crear imagen.BMP

Publicado por Alejandro (913 intervenciones) el 25/09/2024 16:51:29
Sí, puedes utilizar la biblioteca de gráficos Simple DirectMedia Layer (SDL) para crear un archivo BMP a partir de una imagen en memoria. Aquí tienes un ejemplo de cómo hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>
#include <stdlib.h>
#include <SDL.h>
 
void createBMP(void* image, int width, int height, const char* filename) {
    SDL_Surface* surface = SDL_CreateRGBSurfaceFrom(image, width, height, 32, width * 4, 0xFF0000, 0x00FF00, 0x0000FF, 0);
 
    if (surface == NULL) {
        printf("Error al crear la superficie SDL: %s\n", SDL_GetError());
        return;
    }
 
    if (SDL_SaveBMP(surface, filename) != 0) {
        printf("Error al guardar el archivo BMP: %s\n", SDL_GetError());
    }
 
    SDL_FreeSurface(surface);
}
 
int main() {
    // Ejemplo de imagen en memoria
    int width = 640;
    int height = 480;
    void* image = malloc(width * height * 4); // Supongamos que la imagen tiene un formato RGBA
 
    // Llenar la imagen con datos
 
    // Crear el archivo BMP
    createBMP(image, width, height, "imagen.bmp");
 
    free(image);
 
    return 0;
}

En este ejemplo, la función `createBMP` toma como argumentos la imagen en memoria (`void* image`), el ancho y alto de la imagen, y el nombre del archivo BMP que se desea crear. Utiliza la función `SDL_CreateRGBSurfaceFrom` para crear una superficie SDL a partir de la imagen en memoria. Luego, utiliza la función `SDL_SaveBMP` para guardar la superficie SDL como un archivo BMP con el nombre especificado.

Recuerda que necesitarás tener instalada la biblioteca SDL y configurar tu entorno de desarrollo para compilar y enlazar con ella.

Espero que esto te sea útil. ¡Buena suerte con tu programa, Salserjo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar