我已经搜索了大约半个星期了,我唯一能找到的就是使用所谓的“像素数组”,但是没有一个主题提到如何制作这样的数组。我不想编辑一张图片--我想从头开始创作一张。
我做了一个小程序,为我创建基于大陆的地图,我想要创建一个基于这些大陆的较小版本的地图(0 =蓝色,1=绿色,2-5 =各种不同的绿色/灰色混合的山脉)。如果您想在一个示例中使用我的变量,我的较小的洲数组称为"field ",我使用BufferedWriter将大陆写入一个文件进行错误测试(0 = "-",1=“,否则是一样的)。”
有谁能详细告诉我,我是怎么做到的?
发布于 2015-08-03 20:35:20
从零开始创建图像的一种方法是使用您所说的像素数组,并添加图像头。
不同文件格式的图像头不同,但最简单的--例如,它--是位图。
维基百科
位图文件头
此字节块位于文件的开头,用于标识文件。一个典型的应用程序首先读取这个块,以确保该文件实际上是BMP文件,并且它没有损坏。BMP文件格式的前两个字节是字符"B“,然后是ASCII编码中的字符"M”。所有的整数值都以小字节格式存储(即最小有效字节优先)。

因此,如果您能够编写一个程序,构造一个像素数组(表示图片),并确保有一个位图文件头,其中包含数组的所有相关信息,那么理论上您就可以从头创建一个图像。
Java实现
像素只不过是0- 255范围内的3个数字的元组。这三个数字分别代表红色、绿色和蓝色。
因此,如果您想要创建一个像素数组,您可以创建一个具有三个字段成员的Pixel类型的对象:
private int myRed;
private int myGreen;
private int myBlue;然后声明一个像素数组(当然,在编写正确的BMP头之后)如下所示:
Pixel[][] picture = new Pixel[WIDTH][HEIGHT]注意要考虑到在生成的像素中创建图片所需的2维。
使用某种类型的OutputStream,您可以将所有必要的字节写入一个新的File。
https://stackoverflow.com/questions/31796157
复制相似问题