画像を開いてそのピクセルをメモリに書き込む必要があるため、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 ハイシエラ:
141e9b6a84f4ca05a7699b33fc0ef808
- Docker 経由の Ubuntu Xenial:
019a568e40dcc41ac6496da06d29d723
なぜこれが起こっているのか、さらにどこを見ればよいのかわかりません。どんなヒントでも大歓迎です!