C/Visual C - Un programa de un gif

 
Vista:

Un programa de un gif

Publicado por César (2 intervenciones) el 30/10/2001 03:03:27
Alguien tiene un programa que lea un archivo de tipo gif, y que me pueda explicar como le hizo para ver que se viera el programa, gracias..

ATt. César.
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

Lectura y visualización de archivos GIF

Publicado por Alejandro (913 intervenciones) el 22/10/2024 17:16:45
César, para leer y mostrar un archivo GIF en un programa de Visual C, puedes seguir estos pasos:

1. Incluir las bibliotecas necesarias: Asegúrate de tener las bibliotecas adecuadas para manejar imágenes GIF. Puedes usar la biblioteca GDI+ que viene con Visual Studio.

2. Inicializar GDI+: Antes de usar GDI+, debes inicializarlo. Esto se hace generalmente en la función `WinMain`.

3. Cargar el archivo GIF: Utiliza la clase `Gdiplus::Image` para cargar el archivo GIF.

4. Dibujar la imagen: Usa un objeto `Gdiplus::Graphics` para dibujar la imagen en el contexto de la ventana.

Aquí tienes un ejemplo básico 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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <windows.h>
#include <gdiplus.h>
 
#pragma comment(lib, "gdiplus.lib")
 
using namespace Gdiplus;
 
void InitGDIPlus() {
    GdiplusStartupInput gdiplusStartupInput;
    ULONG_PTR gdiplusToken;
    GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
}
 
void DrawGIF(HDC hdc, const wchar_t* filename) {
    Image image(filename);
    Graphics graphics(hdc);
    graphics.DrawImage(&image, 0, 0);
}
 
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
    switch (uMsg) {
    case WM_PAINT: {
        PAINTSTRUCT ps;
        HDC hdc = BeginPaint(hwnd, &ps);
        DrawGIF(hdc, L"ruta/a/tu/archivo.gif");
        EndPaint(hwnd, &ps);
    } break;
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    }
    return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
 
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE, PWSTR, int nCmdShow) {
    InitGDIPlus();
 
    const wchar_t CLASS_NAME[] = L"MiVentanaClase";
    WNDCLASS wc = {};
    wc.lpfnWndProc = WindowProc;
    wc.hInstance = hInstance;
    wc.lpszClassName = CLASS_NAME;
 
    RegisterClass(&wc);
    HWND hwnd = CreateWindowEx(0, CLASS_NAME, L"Visualización de GIF", WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, CW_USEDEFAULT, 500, 500, NULL, NULL, hInstance, NULL);
 
    ShowWindow(hwnd, nCmdShow);
    UpdateWindow(hwnd);
 
    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0)) {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
 
    GdiplusShutdown(gdiplusToken);
    return 0;
}

Notas:
- Asegúrate de reemplazar `"ruta/a/tu/archivo.gif"` con la ruta real de tu archivo GIF.
- Este código es un ejemplo básico y puede requerir ajustes según tus necesidades específicas.
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