2010-02-12 41 views
9

soy más un desarrollador de Java y no hay una forma estándar de lectura de imágenes:¿Cómo puedo leer/cargar imágenes en C++?

BufferedImage img = null; 
try { 
    img = ImageIO.read(new File("strawberry.png")); 
} catch (IOException e) { 
} 

pero ¿cuál es la forma en C++ de la carga de imágenes? Quiero cargar todas las imágenes en un directorio específico en una matriz más o menos.

+3

No existe una forma estándar de hacerlo en C++: la biblioteca estándar de C++ no admite imágenes. Tendrá que usar una de las muchas bibliotecas de manejo de imágenes no estándar. –

+5

Usaría Magick ++ yo mismo ... –

+1

Por favor, especifique el sistema operativo. No hay manejo de imágenes en C++ propiamente dicho. –

Respuesta

8

Personalmente, prefiero la biblioteca ImageMagick.

Hay muchas bibliotecas de procesamiento de gráficos disponibles, y no hay una sola opción que se destaque como claramente superior a las demás. Mi consejo es hacer una pequeña lista de 3 o 4, echar un vistazo a la documentación de cada uno y tratar de escribir un sencillo programa de media página con cada uno. Utilice el que encuentre personalmente más fácil de usar.

1

La biblioteca que desee utilizar para cargar imágenes dependerá de lo que pretenda hacer con ella. Si está utilizando un marco como QT o wxWidgets, proporcionará rutinas de carga de imágenes.

Otra posibilidad es utilizar la biblioteca SDL Image y trabajar en superficies SDL, lo que le permitirá trabajar hasta el nivel de píxel si lo necesita.

7

No existe una "forma" estándar en C++ para cargar imágenes o archivos de ningún otro tipo. Esa característica es proporcionada por (generalmente de terceros) bibliotecas.

En Windows, puede usar las API de GDI o DirectX para cargar imágenes en la memoria.

También puede usar cualquiera de muchas bibliotecas diferentes. Algunos de los que vienen a la mente:

Hay muchas, muchas otras a la vista, y algunas pueden ser más apropiadas que otras dependiendo de lo que esté tratando de hacer.

Por ejemplo, si solo va a trabajar con archivos JPEG, querrá usar libIJG. O si solo va a utilizar PNG, puede encontrar libPNG o cairo para ser más apropiado.

1

Qt tiene un buen soporte para imágenes, y es gratuito y multiplataforma.

Mira la qimage class

Cuestiones relacionadas