我们需要打开一个图像并将其像素写入内存,以便 C 库可以进一步处理它。我们使用以下行来执行此操作:
image = Vips::Image.new_from_file(filename)
pixels_pointer = image.write_to_memory
但是,似乎在内存中写入的内容因环境而异。我们正在通过 Docker 在 macOS High Sierra 和 Ubuntu Xenial 上使用vips-8.8.0
和ruby-vips (2.0.13)
. 我们已经对写入内存的结果进行了 MD5 编辑:
p Digest::MD5.hexdigest(pixels_pointer)
以下是两者的结果:
- macOS 高山脉:
141e9b6a84f4ca05a7699b33fc0ef808
- 通过 Docker 的 Ubuntu Xenial:
019a568e40dcc41ac6496da06d29d723
我不知道为什么会发生这种情况,我应该在哪里进一步观察。任何提示将不胜感激!