C/Visual C - Como Abrir archivo JPG con graficos en TC3++

 
Vista:

Como Abrir archivo JPG con graficos en TC3++

Publicado por Daniel (6 intervenciones) el 01/05/2001 23:40:20
Por favor
Necesito una funcion que abra y despliege un archivo JPG con TurboC ++ 3

Urgente
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

Abrir y mostrar un archivo JPG en TurboC++ 3

Publicado por Alejandro (913 intervenciones) el 24/09/2024 17:50:24
Daniel, lamentablemente TurboC++ 3 no es compatible de forma nativa con archivos JPG, ya que es una versión antigua del compilador y no incluye bibliotecas o funciones específicas para manejar ese tipo de archivos. Sin embargo, puedes utilizar bibliotecas externas para abrir y mostrar archivos JPG en TurboC++ 3.

Una opción es utilizar la biblioteca gráfica "graphics.h" junto con la biblioteca "jpeglib.h" para cargar y mostrar imágenes JPG. Aquí tienes un ejemplo básico de cómo podrías 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 <graphics.h>
#include <jpeglib.h>
 
void displayJPG(const char* filename) {
    FILE* file = fopen(filename, "rb");
    if (file == NULL) {
        printf("Error al abrir el archivo JPG\n");
        return;
    }
 
    struct jpeg_decompress_struct cinfo;
    struct jpeg_error_mgr jerr;
 
    cinfo.err = jpeg_std_error(&jerr);
    jpeg_create_decompress(&cinfo);
    jpeg_stdio_src(&cinfo, file);
    jpeg_read_header(&cinfo, TRUE);
    jpeg_start_decompress(&cinfo);
 
    int width = cinfo.output_width;
    int height = cinfo.output_height;
    int numChannels = cinfo.output_components;
 
    unsigned char* buffer = (unsigned char*)malloc(width * height * numChannels);
    unsigned char* rowPtr;
 
    while (cinfo.output_scanline < height) {
        rowPtr = buffer + (cinfo.output_scanline) * width * numChannels;
        jpeg_read_scanlines(&cinfo, &rowPtr, 1);
    }
 
    closegraph();
    initgraph(&gd, &gm, "C:\\TC\\BGI");
 
    for (int y = 0; y < height; y++) {
        for (int x = 0; x < width; x++) {
            int r = buffer[(y * width + x) * numChannels];
            int g = buffer[(y * width + x) * numChannels + 1];
            int b = buffer[(y * width + x) * numChannels + 2];
            putpixel(x, y, COLOR(r, g, b));
        }
    }
 
    free(buffer);
    jpeg_finish_decompress(&cinfo);
    jpeg_destroy_decompress(&cinfo);
    fclose(file);
}
 
int main() {
    int gd = DETECT, gm;
    initgraph(&gd, &gm, "C:\\TC\\BGI");
 
    displayJPG("imagen.jpg");
 
    getch();
    closegraph();
    return 0;
}

Este código utiliza la biblioteca "jpeglib.h" para cargar y decodificar el archivo JPG, y luego utiliza la biblioteca "graphics.h" para mostrar la imagen en una ventana de gráficos.

Recuerda que este código es solo un ejemplo básico y puede requerir ajustes adicionales según tus necesidades específicas. Además, asegúrate de tener las bibliotecas "graphics.h" y "jpeglib.h" correctamente instaladas y configuradas en TurboC++ 3.

Es importante tener en cuenta que TurboC++ 3 es una versión muy antigua del compilador y no es compatible con los estándares modernos de C++. Te recomendaría considerar utilizar un compilador más actualizado, como GCC o Visual C++, que ofrecen mejores características y soporte para bibliotecas modernas.
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