¿Convertir una matriz de píxeles en un objeto de imagen con ImageIO de Java?

Actualmente estoy convirtiendo una matriz de valores de píxeles (creados originalmente con un objeto java.awt.image.PixelGrabber) en un objeto de imagen usando el siguiente código:

public Image getImageFromArray(int[] pixels, int width, int height) {
    MemoryImageSource mis = new MemoryImageSource(width, height, pixels, 0, width);
    Toolkit tk = Toolkit.getDefaultToolkit();
    return tk.createImage(mis);
}

¿Es posible lograr el mismo resultado utilizando las clases del paquete (s) de ImageIO, por lo que no tengo que usar el kit de herramientas de AWT?

Toolkit.getDefaultToolkit () no parece ser 100% confiable y, a veces, arroja un AWTError, mientras que las clases ImageIO siempre deberían estar disponibles, por lo que estoy interesado en cambiar mi método.

Respuestas a la pregunta(6)

Su respuesta a la pregunta