Transformar um array de pixels em um objeto Image com o ImageIO do Java?

Atualmente, estou transformando uma matriz de valores de pixel (originalmente criados com um objeto java.awt.image.PixelGrabber) em um objeto Image usando o seguinte 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);
}

É possível obter o mesmo resultado usando classes do (s) pacote (s) ImageIO para que eu não precise usar o AWT Toolkit?

Toolkit.getDefaultToolkit () não parece ser 100% confiável e algumas vezes lançará um AWTError, enquanto as classes ImageIO devem estar sempre disponíveis, e é por isso que estou interessado em mudar meu método.

questionAnswers(6)

yourAnswerToTheQuestion