Jestem obecnie toczenia tablicę wartości pikseli (pierwotnie utworzone z obiektem java.awt.image.PixelGrabber) do obiektu obrazu przy użyciu następującego kodu:Zamień tablicę pikseli w obiekt obrazu za pomocą Java ImageIO?
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);
}
Czy to możliwe, aby osiągnąć ten sam wynik przy użyciu klas z pakietów ImageIO, więc nie muszę korzystać z AWT Toolkit?
Toolkit.getDefaultToolkit() nie wydaje się być w 100% wiarygodne i czasami rzucić AWTError, natomiast klasy ImageIO powinny być zawsze dostępne, dlatego jestem zainteresowany zmianą moją metodę.
Dzięki bcash, ale gdy próbuję tego kodu, otrzymuję wyjątek java.lang.ArrayIndexOutOfBoundsException. Jakieś pomysły? –
Myślę, że jest blisko, możemy potrzebować więcej szczegółów od Chrisa ze szczegółami? wygląda na to, że powinno działać ... Jakie są twoje ints? czy oni są RGB? ARGB? jakiś rodzaj spakowanego formatu? –
Piksele pochodzą z PixelGrabber jako takie: int [] pixels = new int [szerokość * wysokość]; PixelGrabber pg = new PixelGrabber (img, 0, 0, szerokość, wysokość, piksele, 0, szerokość); pg.grabPixels(); –