SPNG形式(バイナリ形式で複数の画像を1ファイルに統合した独自形式)のPythonでの読み込み方

諸事情で複数の画像を簡易的に1つのファイルに統合したいことがあり、またそのファイルをPythonから読み込みたい需要があった。

Numpyを使ったバイナリファイルの読み込み方、OpenCVを使ったデコードの仕方などの知識を使う。

import cv2
import numpy as np

# V00000001_L0_VX0001_VY0000_mat0_080.spng&8&426991 とJSONに書いてある場合
f = open("V00000001_L0_VX0001_VY0000_mat0_080.spng", "rb")
data = np.fromfile(f, np.uint8, 426991, "", 8)
dst = cv2.imdecode(data, -1)
cv2.imshow("window", dst)
cv2.waitKey(0)

サンプルデータ

https://1drv.ms/u/s!Ap9xAxIuzM0xvIwQ3C62NhsqgRoDfA