2010-02-12 17 views
9

io sono più uno sviluppatore Java e non c'è un modo standard di immagini di lettura:Come posso leggere/caricare immagini in C++?

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

ma qual è il modo C++ di caricamento delle immagini? Voglio caricare tutte le immagini in una directory specifica in un array o così.

+3

Non esiste un modo standard per farlo in C++: la libreria standard C++ non supporta le immagini. Dovrai utilizzare una delle tante librerie di gestione delle immagini non standard. –

+5

Vorrei usare magick ++ me stesso ... –

+1

Si prega di specificare OS. Non esiste una gestione delle immagini in C++ corretta. –

risposta

8

Personalmente, preferisco la biblioteca ImageMagick.

Ci sono molte librerie di elaborazione grafica disponibili, e non c'è una singola scelta che si distingua chiaramente come superiore alle altre. Il mio consiglio è di fare una breve lista di 3 o 4, dare un'occhiata alla documentazione di ciascuno, e provare a scrivere un semplice programma di mezza pagina con ciascuno. Usa quello che trovi personalmente più facile da usare.

1

La libreria che si desidera utilizzare per caricare le immagini dipenderà da cosa si intende fare con esso. Se si utilizza un framework come QT o wxWidgets, fornirà routine di caricamento delle immagini.

Un'altra possibilità è quella di utilizzare la libreria SDL Image e di lavorare su superfici SDL, che consentiranno di ridurre il livello dei pixel se necessario.

1

Date un'occhiata a DevIL

7

Non esiste un "modo" standard in C++ per caricare immagini o file di qualsiasi altro tipo. Questa funzione è fornita dalle librerie (di solito di terze parti) .

Su Windows, è possibile utilizzare le API GDI o DirectX per caricare le immagini nella memoria.

È anche possibile utilizzare una qualsiasi delle numerose librerie diverse. Alcuni che mi vengono in mente: s

Ci sono molti, molti altri da guardare, e alcuni possono essere più appropriati di altri a seconda di ciò che si sta tentando di fare.

Ad esempio, se si sta solo lavorando con file JPEG, allora si vorrà usare libIJG. Oppure se utilizzi solo PNG, potresti trovare libPNG o cairo più appropriato.

1

Qt ha un buon supporto per le immagini ed è gratuito e multipiattaforma.

Scopri i qimage class

Problemi correlati