is there an ImageLoader I can use to load an image directly and set it to the texture with setImage so that I need not use loadTexture method from assetManager?
You will always need the assetmanager, otherwise you have no path to load from, the OpenGL system doesnt know about your image etc. etc. The AssetManager is your “ImageLoader”.
The loaders are in the com.jme3.texture.plugins package