猿问

如何在 go 中将 RGB 字节 [] 切片转换为 image.Image?

在另一个进程中运行的 C++ 应用程序将一个由三字节像素(红色、绿色、蓝色)组成的 char[] 数组传递给 go 程序。我已经使用 cgo 在 go 中将其重建为 byte[] 切片,但我不确定如何转换为图像。如果需要,我也可以传递宽度或高度(我想是的)。

我知道image.RGBA类型,但文档似乎暗示那些不仅仅是每颜色单字节,并且假设有一个 alpha 通道,而我的非常简单的位图没有。将我拥有的 3 字节值转换为适用于 image.RGBA 的东西是一种解决方案吗?如果是这样,我该怎么做?

或者,我可以在将值发送为可识别的格式(jpeg、gif、png)之前在 C/C++ 中进行转换。无论哪种方式都适用于我的用途,但我也不知道如何处理。


慕田峪9158850
浏览 561回答 1
1回答

慕的地6264312

该image包基于接口。只需用这些方法定义一个新类型。您的类型ColorModel将返回color.RGBAModel, Bounds- 您的矩形的边框,以及At- 如果您知道图像的尺寸,您可以计算的 (x, y) 处的颜色。
随时随地看视频慕课网APP

相关分类

Go
我要回答