Как создать изображение из массива значений пикселей и известной ширины и высоты ..? - PullRequest
2 голосов
/ 01 февраля 2012

У меня есть 1D массив значений пикселей, и я могу получить красный, зеленый и синий таким образом.

int rgb[] = new int[]
        {
            (argb >> 16) & 0xff, //red
            (argb >>  8) & 0xff, //green
            (argb      ) & 0xff  //blue
        };

Я знаю ширину и высоту изображения, которое я хочу создать. Итак, в итоге у меня есть следующие данные. 1) ширина нового изображения 2) высота нового изображения 3) одномерный массив значений пикселей.

Мой супервизор посоветовал мне использовать метод createRaster, но аргументы функции мне сложно понять. Можете ли вы предложить мне простой код? Спасибо.

Ответы [ 2 ]

2 голосов
/ 01 февраля 2012

Как указано в этом предыдущем посте SO:

public static Image getImageFromArray(int[] pixels, int width, int height) {
            BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
            WritableRaster raster = (WritableRaster) image.getData();
            raster.setPixels(0,0,width,height,pixels);
            return image;
        }

Если у вас возникли проблемы с пониманием параметров, вам следует ознакомиться с Java-документацией .

0 голосов
/ 01 февраля 2012

Вы можете:

 InputStream is = new ByteArrayInputStream(rgb);
 Image img = ImageIO.read(is);

rgb должен быть байтовым массивом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...