如何用Scala绘制位图?

发布于 2024-10-12 20:24:49 字数 148 浏览 3 评论 0原文

我想绘制一个位图,手动指定它每个点的颜色(换句话说,任务是将 RGB 值的 2D 数组保存到 PNG(或其他一些无损真彩色位图格式)文件中)。

如果有一个函数可以在给定坐标的图像顶部打印一些文本(具有给定大小的给定字体)片段,那就太好了。

如何实施?

I would like to draw a bitmap, manually specifying colour of every point of it (in other words, the task is to save a 2D array of RGB values to a PNG (or some other lossless true-colour bitmap format) file).

It would be also nice to have a function to print some text (with a given font of a given size) pieces on top of the image at given coordinates.

How to implement this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

涫野音 2024-10-19 20:24:49

您可以使用Java标准库ImageIO类。它提供了一个静态 write 方法,例如,可以将 RenderedImage 编码并写入 PNG 格式的输出流。对于RenderedImage,您可以轻松使用BufferedImage类。它提供了一个setRGB方法来直接操作单个像素的颜色。或者,您也可以调用 BufferedImage.getGraphics(),它返回一个 Graphics 实例,您可以在其上绘制任何类型的形状或文本,甚至整个 GUI 组件,就像任何 AWT 组件一样。

这是常规的 Java 内容。 Scala 没有为此提供任何特殊的包装器,我也怀疑这是否值得付出努力。

You can use the Java standard library ImageIO class. It offers a static write method that can, for example, encode and write a RenderedImage to an output stream in PNG format. For the RenderedImage, you can easily use the BufferedImage class. It offers a setRGB method for directly manipulating the colors of individual pixels. Alternatively, you can also call BufferedImage.getGraphics(), which returns an instance of Graphics that you can draw any kind of shape or text on, or even whole GUI components, just like with any AWT component.

This is regular Java stuff. Scala does not offer any special wrappers for that, and I also doubt it would be worth the effort.

茶花眉 2024-10-19 20:24:49

您应该使用 Java 库,例如 Java Advanced Imaging API 。这是有据可查的。

You should use a java library such as the Java Advanced Imaging API. It's well documented.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文