【发布时间】:2016-01-24 03:37:44
【问题描述】:
我正在尝试使用 Java 创建 1920x1080 彩色图像,但由于某种原因我无法更改颜色。我得到的只是黑色,无论我在颜色 RGB 中放置什么值。代码如下:
BufferedImage background = new BufferedImage(1920,1080,BufferedImage.TYPE_INT_ARGB);
Graphics2D g = background.createGraphics();
g.setPaint ( new Color ( 100, 100, 250 ) );
g.fillRect ( 0, 0, background.getWidth(), background.getHeight() );
g.dispose();
try {
ImageIO.write(background, "jpg", new File("output.jpg"));
} catch (IOException ex) {
ex.printStackTrace();
}
我做错了什么?
【问题讨论】:
-
您的代码对我来说很好,并打印出漂亮的灰绿色填充图像。
-
对我来说不是,因为您的代码对我来说看起来不错。您确定您查看的是正确的
output.jpg文件吗? -
是的,我检查的是正确的
-
当我在 MacBook 上运行此代码并使用预览打开时,我看到一个黑色矩形。当我用 Chrome 打开它时,它是绿色的。
-
而且.. 当我将图像类型更改为 TYPE_INT_RGB 时,预览和 Chrome 中的图像都是蓝色的。这是有道理的,因为颜色是蓝色的
100,100,250。一个明确的提示是色彩空间:当使用类型 TYPE_INT_ARGB 时,色彩空间是 CMYK。使用 TYPE_INT_RGB 时,颜色空间为 RGB。观看者可能对 CMYK 色彩空间的处理不正确。
标签: java bufferedimage