ImageJ può visualizzare, editare, analizzare, processare, salvare, e stampare immagini a livelli di grigio (8 bit, 16 bit e 32 bit) ed a colori (8 bit e 24 bit). Può leggere molti formati di immagine inclusi TIFF, PNG, GIF, JPEG, BMP, DICOM, FITS, così come anche alcuni formati "raw". ImageJ supporta gli "stack" di immagini, serie di immagini sovrapposte (sia spazialmente come "sezioni" di un corpo tridimensionale, sia temporalmente come una sequenza di immagini bi o tri-dimensionali, comunque denominate "slices") che condividono una singola finestra, ed è abilitato al multithreading, in modo che alcune operazioni che richiedono molto tempo di calcolo possano essere eseguite in parallelo su hardware multi-CPU.