Java 将浮点[]转换为灰度图像

Java 将浮点[]转换为灰度图像,java,image-processing,Java,Image Processing,我有float[],其中每个成员在[0..1]中都有一个值 这表示灰度图像的像素贴图 如何将浮点值转换为RGB值?需要记住的是,在灰色RGB图像中,红绿色和蓝色像素值都是相同的 所以,取每个像素乘以255,得到一个整数,然后将其存储为PPM文件,该文件的格式非常简单 基本上,如果你的浮动像素是0.5,你会得到127,然后将它写入你的PPM文件3次(一次为红色,一次为绿色,一次为蓝色)。开头的标题非常简单,只是 P6 <columns> <rows> 255 RGBRGBR

我有float[],其中每个成员在[0..1]中都有一个值

这表示灰度图像的像素贴图


如何将浮点值转换为RGB值?

需要记住的是,在灰色RGB图像中,红绿色和蓝色像素值都是相同的

所以,取每个像素乘以255,得到一个整数,然后将其存储为PPM文件,该文件的格式非常简单

基本上,如果你的浮动像素是0.5,你会得到127,然后将它写入你的PPM文件3次(一次为红色,一次为绿色,一次为蓝色)。开头的标题非常简单,只是

P6
<columns> <rows>
255
RGBRGBRGRGBRGBRGB...
P6
255
RGBRGBRGRGBRGBRGB。。。
一旦你有了PPM图像,你可以使用ImageMagick或Photoshop将其转换为JPEG或PNG或任何你喜欢的格式


如果使用“.pgm”扩展名,将第一行保存为“P5”而不是“P6”,并且只写入每个像素一次,而不是将R、G和B的值重复三次,则速度会更快,只占用三分之一的空间。。。。但是您需要RGB。

需要记住的是,在灰色RGB图像中,红绿色和蓝色像素值都是相同的

所以,取每个像素乘以255,得到一个整数,然后将其存储为PPM文件,该文件的格式非常简单

基本上,如果你的浮动像素是0.5,你会得到127,然后将它写入你的PPM文件3次(一次为红色,一次为绿色,一次为蓝色)。开头的标题非常简单,只是

P6
<columns> <rows>
255
RGBRGBRGRGBRGBRGB...
P6
255
RGBRGBRGRGBRGBRGB。。。
一旦你有了PPM图像,你可以使用ImageMagick或Photoshop将其转换为JPEG或PNG或任何你喜欢的格式


如果使用“.pgm”扩展名,将第一行保存为“P5”而不是“P6”,并且只写入每个像素一次,而不是将R、G和B的值重复三次,则速度会更快,只占用三分之一的空间。。。。但是你想要RGB。

我不确定我是否理解这个问题。是否要将灰度图像转换为彩色图像?或者只是让它在RGB中仍然代表灰度?是的,保持灰度。0 -白色,1 -黑色,所有在中间是灰色的。我需要它在RGB中。编辑:很抱歉现在看到了你的编辑。如果你知道的足够多,可以说你想要一个RGB值,为什么你要浪费人们的时间问如何除以n/255并截断结果?我不确定我是否理解这个问题。是否要将灰度图像转换为彩色图像?或者只是让它在RGB中仍然代表灰度?是的,保持灰度。0 -白色,1 -黑色,所有在中间是灰色的。我需要它在RGB中。编辑:很抱歉现在看到了你的编辑。如果你知道的足够多,你想要一个RGB值,为什么你要浪费人们的时间问如何除以n/255并截断结果?