BufferedImage setRGB:图像被压缩到四分之一大小

BufferedImage setRGB: Image gets squished down to quarter size

我有一个 rgb 值的一维整数数组,我需要将其提供给 BufferedImage,然后使用它来生成 jpeg。我有 128*128 像素,我正在使用 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

我觉得我可能忽略了一个小细节。如果有任何见解,我将不胜感激!

这实际上是一个愚蠢的错误,我只需要正确调用带有 numRows 和 numCols 的 BufferedImage 构造函数,而不是我使用的其他变量(宽度,高度指的是其他东西)。

这修复了它。