的Graphics2D如何绘制颜色灰度?

问题描述 投票:2回答:1

我看你可以转换的BufferedImage对象为灰度。但是你可以设定一个模式,让您的显卡只在灰度画“原始”直线,圆弧,矩形等,即使你setPaint(),以非灰色?

我想要做的是这样的:我们的绘图方法将有机会获得一个模式标志。如果该模式标志是真实的,那么一切都应该在全彩色绘制。如果是假的,然后一切都应该从自己的颜色表示导出灰度梯度的绘制。灰色版本应该表明它是禁用的。

我们想避免装载和使用图像,并希望只画事情由于种种原因。

java swing graphics2d grayscale
1个回答
0
投票

与colorMode创建新的BufferedImage的所有内容复制到他和保存

例:

BufferedImage grayImg = ImageIO.read(new File(path));
BufferedImage colorImage = new BufferedImage(grayImg .getWidth(), grayImg .getHeight(), BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = colorImage.createGraphics();
graphics.drawImage(grayImg ,0,0,null);
graphics.dispose();
grayImg.flush();
ImageIO.write(colorImage ,"jpg", newPath);
colorImage .flush();
© www.soinside.com 2019 - 2024. All rights reserved.