Нам нужно открыть изображение и записать его пиксели в память, чтобы библиотека C могла в дальнейшем обрабатывать его. Мы делаем это с помощью строк ниже:
image = Vips::Image.new_from_file(filename)
pixels_pointer = image.write_to_memory
Однако, похоже, что то, что написано в памяти, отличается в зависимости от среды. Мы тестируем это на MacOS High Sierra и на Ubuntu Xenial через Docker с vips-8.8.0
и ruby-vips (2.0.13)
. Мы записали в MD5 результат записи в память:
p Digest::MD5.hexdigest(pixels_pointer)
и вот результаты для обоих:
- macOS High Sierra:
141e9b6a84f4ca05a7699b33fc0ef808
- Ubuntu Xenial через Docker:
019a568e40dcc41ac6496da06d29d723
Понятия не имею, почему это происходит и где мне искать дальше. Любой совет будет высоко оценен!