У меня есть одномерный целочисленный массив значений rgb, который мне нужно передать BufferedImage, а затем использовать его для генерации jpeg. У меня есть 128 * 128 пикселей, которые я шаговые по сравнению с использованием setrgb (я попытался прохождения Буферизированного изображения массива за один раз, попал в неприятность, и хорошо, что это отдельный вопрос)BufferedImage setRGB: изображение сжимается до размера квартала
int numRows = 128;
int numCols = 128;
int inputIndex = 0;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
for(int row = 0; row < numRows; row++){
for(int col = 0; col < numCols; col ++){
int rgb = rgbvals[inputIndex++];
rgb = (rgb << 8) + rgbvals[inputIndex++];
rgb = (rgb << 8) + rgbvals[inputIndex++];
image.setRGB(col,row, rgb);
}
}
File outputFile = new File("output.jpg");
ImageIO.write(image, "JPEG", outputFile);
Это выглядит довольно просто, но мое изображение выглядит так: 128*128 picture of an eye, except it takes up 1/4 the space it needs and the rest of the image is black
Мне кажется, что я мог упустить небольшую деталь. Буду признателен за понимание, спасибо!