java - 在 Google App Engine 中使用 Java,如何从 int r、g、b 值的数组中制作 BMP 图像?

标签 java image google-app-engine bmp

我所拥有的是:对于颜色 r、g 和 b 中的每一种,都有一个 [0,255] 范围内的二维整数数组。我想要的是:从这个数组中创建一个 BMP 并将其发送给客户端。问题是,我不能使用 java.awt.Color、BufferedImage 等,因为这些在 App Engine 中是禁止使用的。 App Engine 确实提供图像处理服务,但是,该服务适用于我已有的图像,而不是用于从头开始创建图像。

我正在考虑自学如何“手动”创建 BMP,但这看起来工作量很大。我应该这样做,还是有更简单的方法?

最佳答案

BMP format例如,与 JPG 或 PNG 相比非常简单。

它有很多头字段和位,但您不需要全部计算/填写。基本上,您需要做的是创建/写入小于 100 字节的 BMP header (如果我没记错的话,大约是 56 个字节)。您只需要设置几个字段,例如以像素为单位的图像大小、图像类型(例如,每像素的位数/字节数)等。您可以使用与您的图像类型相同的图像类型:每像素 3 个字节(r、g 和 b 分量)。

一旦你有了这个,图像数据就会跟着你写,要记住的一件事是 BMP 存储图像是颠倒的,它可能有 4 字节的倍数的行填充示例。

就是这样!请注意,我没有提到 java.awt.Imagejava.awt.Color,因为创建简单的 BMP 不需要它们。

我考虑发布超出“范围”的完整代码,因为您还没有发布任何代码。

这是一个 Java 实现示例,您可以使用它或根据您的需要修改/调整它:

http://www.javaworld.com/article/2077561/learn-java/java-tip-60--saving-bitmap-files-in-java.html

还有很多其他的 Java 实现,不要害怕搜索。

关于java - 在 Google App Engine 中使用 Java,如何从 int r、g、b 值的数组中制作 BMP 图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29770846/

相关文章:

python - ImportError : no module named templates on Google App Engine with Web. py 尽管有已编译的模板

java - 多线程应用程序中的可选调试输出——我的意思是*针对客户端*,而不是为了找出死锁或错误

java - 无法在 Appcelerator Studio 中构建

PHP 图像宽度没有响应?

java - 将基本的 Java 程序添加到网站中

python - 从图像中提取矩形文本框

google-app-engine - jsessionID 在运行 GAE devserver 时附加到 url

java - GAE Python Datastore - 嵌套类表查询

java - 如何确定 Java 中的最佳分布?

java - 如何在android中添加两个毫秒