首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从头开始创建图像?

如何从头开始创建图像?
EN

Stack Overflow用户
提问于 2015-08-03 20:26:25
回答 1查看 394关注 0票数 0

我已经搜索了大约半个星期了,我唯一能找到的就是使用所谓的“像素数组”,但是没有一个主题提到如何制作这样的数组。我不想编辑一张图片--我想从头开始创作一张。

我做了一个小程序,为我创建基于大陆的地图,我想要创建一个基于这些大陆的较小版本的地图(0 =蓝色,1=绿色,2-5 =各种不同的绿色/灰色混合的山脉)。如果您想在一个示例中使用我的变量,我的较小的洲数组称为"field ",我使用BufferedWriter将大陆写入一个文件进行错误测试(0 = "-",1=“,否则是一样的)。”

有谁能详细告诉我,我是怎么做到的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-03 20:35:20

从零开始创建图像的一种方法是使用您所说的像素数组,并添加图像头。

不同文件格式的图像头不同,但最简单的--例如,它--是位图。

维基百科

位图文件头

此字节块位于文件的开头,用于标识文件。一个典型的应用程序首先读取这个块,以确保该文件实际上是BMP文件,并且它没有损坏。BMP文件格式的前两个字节是字符"B“,然后是ASCII编码中的字符"M”。所有的整数值都以小字节格式存储(即最小有效字节优先)。

因此,如果您能够编写一个程序,构造一个像素数组(表示图片),并确保有一个位图文件头,其中包含数组的所有相关信息,那么理论上您就可以从头创建一个图像。

Java实现

像素只不过是0- 255范围内的3个数字的元组。这三个数字分别代表红色、绿色和蓝色。

因此,如果您想要创建一个像素数组,您可以创建一个具有三个字段成员的Pixel类型的对象:

代码语言:javascript
复制
private int myRed;
private int myGreen;
private int myBlue;

然后声明一个像素数组(当然,在编写正确的BMP头之后)如下所示:

代码语言:javascript
复制
Pixel[][] picture = new Pixel[WIDTH][HEIGHT]

注意要考虑到在生成的像素中创建图片所需的2维。

使用某种类型的OutputStream,您可以将所有必要的字节写入一个新的File。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31796157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档