我需要编写一个程序,该程序需要图像,调整大小并旋转它,然后将其保存。前两点已经完成,但现在我遇到了一个问题。每次我转换灰度图像时,它都会变成单色图像。 我用下面的命令加载目标图像:使用BufferedImage时,灰度图像变为单色
BufferedImage sourceimg = ImageIO.read(input);
后,我缩放和旋转它,我救出来用下面的命令:
BufferedImage newimg = new BufferedImage(sourceimg.getHeight(), sourceimg.getWidth(), sourceimg.getType());
op.filter(sourceimg, newimg);
sourceimg = newimg;
ImageIO.write(sourceimg, "png", outputFile);
这工作得很好,除了灰度图像的每个图像。我已经通过将每张图片的类型设置为ARGB来尝试一种解决方法,但必须有另一种方法。有没有办法获得给定图像的IndexColorModel?
什么是'黑白image'? – ELITE
“有没有办法获得给定图像的IndexColorModel?”这与你的主要问题有什么关系?你是否想要一些复杂的东西来解决一个简单的问题?你还有什么处理sourceimg = newimg? – gpasch
sourceimg = newimg被使用,因为在后面的代码中使用它,并且newimg得到instanciated的部分是可选的,所以我不能保证newimg存在这就是为什么sourceimg = newimg,问题本身是通过替换'sourceimg来解决的。 getType()'与'sourceimg.getColorModel()。getNumColorComponents()'。我想知道是否可以得到IndexColorModel,因为我认为我可以解决我的问题。 – Cracksoldier