java - 如何从存储在 txt 文件中的 rgb 数据创建 bmp 文件?

标签 java arrays text-files bmp tokenize

我必须从两个 txt 文件创建一个 bmp 图像。第一个是 mxn 数组:

* * * * * * * *
米n
c11 c21 .. cm1
...
c1n c2n .. cmn
* * * * * * * *

* * * * * * * *
6 5
.7 .7 .6 1.0 1.2 .1
.9 .3 .7 1.1 .7 .2
1 1.1 1.2 1.3 1.7 .6
.5 .6 .5 .4 .9 .1101
2 .1 .1 .1 2.1 1.1
* * * * * * * *

第二个txt文件是色标,像这样

* * * * * * * *
min1 max1 r1 g1 b1
min2 max2 r2 g2 b2
...
minx maxx rx gx bx
* * * * * * * *

* * * * * * * *
0 .5 255 128 64
.5 .75 128 255 32
.75 1.25 64 64 225
01.50 5 128 128 0
* * * * * * * *

所以我必须读取这两个文件。我尝试使用 StringTokenizer 类从第一个 txt 文件创建一个数组,但我完全迷路了。从这两个文件我要创建一个 bmp 图像。 有人能以某种方式帮助我吗?

最佳答案

如果颜色范围是连续的(您的示例缺少 1.25-1.5)并且保证覆盖矩阵文件中所有可能的值,我会首先构建一个 TreeMap<Double, java.awt.Color> ,使用颜色文件中的最大值作为映射键。然后您可以使用 TreeMap#ceilingEntry(K)方法来获取任何矩阵值的颜色。例如。如果您的测试数据正确填充,ceilingEntry(0.2).getValue() 将返回 Color(255,128,64)。

您可以更轻松地直接使用 java.awt.BufferedImage,而不是将矩阵文件读入数组中绘制并稍后使用 javax.imageio.ImageIO将缓冲图像写入 BMP 文件。

关于java - 如何从存储在 txt 文件中的 rgb 数据创建 bmp 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1499318/

相关文章:

c# - 如何在 C# 中生成一个随机命名的文本文件?

java - HDFS copyToLocalFile 抛出 java.io.IOException : Mkdirs failed to create file

java - 使用 System.out.print 相对于 System.out.printf 有什么好处?

java - 嵌套或顺序异常处理?

javascript - 如何在离线时将 txt/csv 文件加载到 javascript 字符串/数组中

Python 2.7,如何获取/检查列表的大小?

python - 从文本文件 pandas python 简化条件数组

batch-file - 批量设置=log.txt

C++基于文本文件的数据库读取

java - 在eclipse上运行项目时出错