def _test_set_access(self, im, color): """Are we writing the correct bits into the image? Using private interfaces, forcing a capi access and a pyaccess for the same image""" caccess = im.im.pixel_access(False) access = PyAccess.new(im, False) w, h = im.size for x in range(0, w, 10): for y in range(0, h, 10): access[(x, y)] = color self.assertEqual(color, caccess[(x, y)]) # Attempt to set the value on a read-only image access = PyAccess.new(im, True) with self.assertRaises(ValueError): access[(0, 0)] = color
def _test_get_access(im): """ Do we get the same thing as the old pixel access """ """ Using private interfaces, forcing a capi access and a pyaccess for the same image """ caccess = im.im.pixel_access(False) access = PyAccess.new(im, False) w,h = im.size for x in range(0,w,10): for y in range(0,h,10): assert_equal(access[(x,y)], caccess[(x,y)])
def _test_set_access(im, color): """ Are we writing the correct bits into the image? """ """ Using private interfaces, forcing a capi access and a pyaccess for the same image """ caccess = im.im.pixel_access(False) access = PyAccess.new(im, False) w,h = im.size for x in range(0,w,10): for y in range(0,h,10): access[(x,y)] = color assert_equal(color, caccess[(x,y)])
def test_direct(self): im = hopper() im.load() # im = Image.new( "RGB", (2000, 2000), (1, 3, 2)) caccess = im.im.pixel_access(False) access = PyAccess.new(im, False) self.assertEqual(caccess[(0, 0)], access[(0, 0)]) print("Size: %sx%s" % im.size) timer(iterate_get, "PyAccess - get", im.size, access) timer(iterate_set, "PyAccess - set", im.size, access) timer(iterate_get, "C-api - get", im.size, caccess) timer(iterate_set, "C-api - set", im.size, caccess)
def _test_get_access(self, im): """Do we get the same thing as the old pixel access Using private interfaces, forcing a capi access and a pyaccess for the same image""" caccess = im.im.pixel_access(False) access = PyAccess.new(im, False) w, h = im.size for x in range(0, w, 10): for y in range(0, h, 10): self.assertEqual(access[(x, y)], caccess[(x, y)]) # Access an out-of-range pixel self.assertRaises(ValueError, lambda: access[(access.xsize+1, access.ysize+1)])
def test_not_implemented(self): self.assertIsNone(PyAccess.new(hopper("BGR;15")))
def test_p_putpixel_rgb_rgba(self): for color in [(255, 0, 0), (255, 0, 0, 255)]: im = Image.new("P", (1, 1), 0) access = PyAccess.new(im, False) access.putpixel((0, 0), color) self.assertEqual(im.convert("RGB").getpixel((0, 0)), (255, 0, 0))
def test_not_implemented(self): assert PyAccess.new(hopper("BGR;15")) is None
def test_p_putpixel_rgb_rgba(self): for color in [(255, 0, 0), (255, 0, 0, 255)]: im = Image.new("P", (1, 1), 0) access = PyAccess.new(im, False) access.putpixel((0, 0), color) assert im.convert("RGB").getpixel((0, 0)) == (255, 0, 0)