def test_series(): im1 = imageio.imread("imageio:chelsea.png") ims1 = [im1, im1 * 0.8, im1 * 0.5] fname = os.path.join(test_dir, "chelseam.bsdf") imageio.mimsave(fname, ims1) # Does it look alright if we open it in bsdf without extensions? raw = bsdf.load(fname, []) assert isinstance(raw, list) and len(raw) == 3 for r in raw: assert set(r.keys()) == set(["meta", "array"]) assert isinstance(r["meta"], dict) assert isinstance(r["array"], dict) assert r["array"]["shape"] == list(im1.shape) assert isinstance(r["array"]["data"], bytes) # Read multi-image as singleton im2 = imageio.imread(fname) assert np.all(im1 == im2) # Read multi-image as series ims2 = imageio.mimread(fname) assert len(ims2) == 3 and all(np.all(ims1[i] == ims2[i]) for i in range(3)) # Read + write back without image extensions bsdf.save(fname, bsdf.load(fname)) ims3 = imageio.mimread(fname) assert len(ims3) == 3 and all(np.all(ims1[i] == ims3[i]) for i in range(3))
def test_singleton(): im1 = imageio.imread("imageio:chelsea.png") fname = os.path.join(test_dir, "chelsea.bsdf") imageio.imsave(fname, im1) # Does it look alright if we open it in bsdf without extensions? raw = bsdf.load(fname, []) assert isinstance(raw, dict) assert set(raw.keys()) == set(["meta", "array"]) assert isinstance(raw["meta"], dict) assert isinstance(raw["array"], dict) assert raw["array"]["shape"] == list(im1.shape) assert isinstance(raw["array"]["data"], bytes) # Read singleton image as singleton im2 = imageio.imread(fname) assert np.all(im1 == im2) # Read singleton image as series ims = imageio.mimread(fname) assert len(ims) == 1 and np.all(im1 == ims[0]) # Read + write back without image extensions bsdf.save(fname, bsdf.load(fname)) im3 = imageio.mimread(fname) assert np.all(im1 == im3)
def test_not_an_image(): fname = os.path.join(test_dir, "notanimage.bsdf") # Not an image not a list bsdf.save(fname, 1) with raises(RuntimeError): imageio.imread(fname) # A list with non-images bsdf.save(fname, [1]) with raises(RuntimeError): imageio.imread(fname) # An empty list could work though bsdf.save(fname, []) with raises(IndexError): imageio.imread(fname) assert imageio.mimread(fname) == []