def set_background(img, color=None, name=None): """Return a new image, with the background set to `color`. Parameters ----------------- img : Image color : color name or tuple, optional The background color. Can be specified either by name, hexcode, or as a tuple of ``(red, green, blue)`` values. """ if not isinstance(img, Image): raise TypeError("Expected `Image`, got: `{0}`".format(type(img))) name = img.name if name is None else name if color is None: return img background = np.uint8(rgb(color) + (255, )).view('uint32')[0] data = over(img.data, background) return Image(data, coords=img.coords, dims=img.dims, name=name)
def test_over(): o = src.copy() o[0, 1] = 0 np.testing.assert_equal(over(src, clear), o) np.testing.assert_equal(over(src, clear_black), o) o = np.array([[0xffffffff, 0xffffffff, 0xffffffff], [0xffff8282, 0xff82ff82, 0xff8282ff], [0xffff0000, 0xff000000, 0xffd2d2d2]]) np.testing.assert_equal(over(src, black), o) o = np.array([[0xffff0000, 0xffff0000, 0xffffffff], [0xffff0000, 0xff827d00, 0xff82007d], [0xffff0000, 0xff000000, 0xffd20d0d]]) np.testing.assert_equal(over(src, blue), o) o = np.array([[0x7dff0000, 0x7dff0000, 0xffffffff], [0xbcff0000, 0xbc56a800, 0xbc5600a8], [0xffff0000, 0xff000000, 0x9ab51616]]) np.testing.assert_equal(over(src, half_blue), o) o = np.array([[0x7d7d007d, 0x7d7d007d, 0xffffffff], [0xbcd3002a, 0xbc2aa82a, 0xbc2a00d3], [0xffff0000, 0xff000000, 0x9a641664]]) np.testing.assert_equal(over(src, half_purple), o)
def test_over(): o = src.copy() o[0, 1] = 0 np.testing.assert_equal(over(src, clear), o) np.testing.assert_equal(over(src, clear_black), o) o = np.array([[0xffffffff, 0xffffffff, 0xffffffff], [0xffff8282, 0xff82ff82, 0xff8282ff], [0xffff0000, 0xff000000, 0xffd2d2d2]]) np.testing.assert_equal(over(src, black), o) o = np.array([[0xffff0000, 0xffff0000, 0xffffffff], [0xffff0000, 0xff827d00, 0xff82007d], [0xffff0000, 0xff000000, 0xffd20d0d]]) np.testing.assert_equal(over(src, blue), o) o = np.array([[0x7dff0000, 0x7dff0000, 0xffffffff], [0xbcff0000, 0xbc56a800, 0xbc5600a8], [0xffff0000, 0xff000000, 0x9ab51616]]) np.testing.assert_equal(over(src, half_blue), o) o = np.array([[0x7d7d007d, 0x7d7d007d, 0xffffffff], [0xbcd3002a, 0xbc2aa82a, 0xbc2a00d3], [0xffff0000, 0xff000000, 0x9a641664]]) np.testing.assert_equal(over(src, half_purple), o)