def test_Percept_save(dtype): ndarray = np.arange(256, dtype=dtype).repeat(31).reshape((-1, 16, 16)) percept = Percept(ndarray.transpose((2, 0, 1))) # Save multiple frames as a gif or movie: for fname in ['test.mp4', 'test.avi', 'test.mov', 'test.wmv', 'test.gif']: percept.save(fname) npt.assert_equal(os.path.isfile(fname), True) # Normalized to [0, 255] with some loss of precision: for mov in mimread(fname): npt.assert_equal(np.min(mov) <= 2, True) npt.assert_equal(np.max(mov) >= 250, True) os.remove(fname) # Cannot save multiple frames image: fname = 'test.jpg' with pytest.raises(ValueError): percept.save(fname) # But, can save single frame as image: percept = Percept(ndarray[..., :1]) for fname in ['test.jpg', 'test.png', 'test.tif', 'test.gif']: percept.save(fname) npt.assert_equal(os.path.isfile(fname), True) img = img_as_float(imread(fname)) npt.assert_almost_equal(np.min(img), 0, decimal=3) npt.assert_almost_equal(np.max(img), 1.0, decimal=3) os.remove(fname)
def test_Percept_save(): ndarray = np.zeros((2, 3, 4)) ndarray[..., 1] = 1 ndarray[..., 2] = 2 ndarray[..., 3] = 3 percept = Percept(ndarray) # Save multiple frames as a gif or movie: for fname in ['test.mp4', 'test.avi', 'test.mov', 'test.wmv', 'test.gif']: print(fname) percept.save(fname) npt.assert_equal(os.path.isfile(fname), True) os.remove(fname) # Cannot save multiple frames image: fname = 'test.jpg' with pytest.raises(ValueError): percept.save(fname) # But, can save single frame as image: percept = Percept(ndarray[..., :1]) for fname in ['test.jpg', 'test.png', 'test.tif', 'test.gif']: percept.save(fname) npt.assert_equal(os.path.isfile(fname), True) os.remove(fname)