Java:拍摄图像并将其转换为带有RGB的白色黑色

时间:2011-04-18 02:20:52

标签: java

所以我正在为我的编程课做一个小组项目,我们正在制作一个照片编辑程序,我的程序的一部分是拍摄图像并使用rgb将其变成黑白。我想知道RGB实现黑白的最佳价值或方式是什么?

5 个答案:

答案 0 :(得分:4)

我建议让Java 2D库担心转换:

  • 创建一个灰度BufferedImage(BufferedImage.TYPE_BYTE_GRAY);
  • 通过createGraphics()
  • 获取图形上下文
  • 确保该图形上下文的颜色渲染准确:call setRenderingHint(RenderingHints.KEY_COLOR_RENDERING,RenderingHints.VALUE_COLOR_RENDER_QUALITY)
  • 绘制您想要“转换”为图形上下文的彩色图像

如果您“手动”进行转换并且想要尽可能准确地进行转换,那么您需要考虑到眼睛对某些颜色成分比其他颜色更敏感。 (如果您想要“粗略且准备好”的转换,您可以平均颜色分量,但严格来说这并不是最准确的转换。)

答案 1 :(得分:2)

对于每个像素,您可以将RGB转换为HSB(使用Color.RGBtoHSB),将饱和度设置为0,然后使用Color.getHSBColor转换回Color实例。

答案 2 :(得分:0)

Wikipedia实际上有一个关于如何在获得RGB颜色后执行转换的好文章。

答案 3 :(得分:0)

嘿,这个page有许多Java Image过滤器,可以免费下载。所有过滤器都是标准的Java BufferedImageOps,可以直接插入现有程序。GrayscaleFilter可以转换图像为黑白

答案 4 :(得分:0)

java.awt.image.ColorConvertOp与灰色目的地ColorSpace一起使用非常有效。有一个很好的例子here