mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-01-12 18:26:17 +03:00
Merge pull request #5206 from radarhere/numpy
This commit is contained in:
commit
683affa29c
|
@ -23,6 +23,11 @@ else:
|
|||
except ImportError:
|
||||
cffi = None
|
||||
|
||||
try:
|
||||
import numpy
|
||||
except ImportError:
|
||||
numpy = None
|
||||
|
||||
|
||||
class AccessTest:
|
||||
# initial value
|
||||
|
@ -66,6 +71,10 @@ class TestImagePutPixel(AccessTest):
|
|||
pix1 = im1.load()
|
||||
pix2 = im2.load()
|
||||
|
||||
for x, y in ((0, "0"), ("0", 0)):
|
||||
with pytest.raises(TypeError):
|
||||
pix1[x, y]
|
||||
|
||||
for y in range(im1.size[1]):
|
||||
for x in range(im1.size[0]):
|
||||
pix2[x, y] = pix1[x, y]
|
||||
|
@ -109,6 +118,13 @@ class TestImagePutPixel(AccessTest):
|
|||
|
||||
assert_image_equal(im1, im2)
|
||||
|
||||
@pytest.mark.skipif(numpy is None, reason="NumPy not installed")
|
||||
def test_numpy(self):
|
||||
im = hopper()
|
||||
pix = im.load()
|
||||
|
||||
assert pix[numpy.int32(1), numpy.int32(2)] == (18, 20, 59)
|
||||
|
||||
|
||||
class TestImageGetPixel(AccessTest):
|
||||
@staticmethod
|
||||
|
|
|
@ -1109,7 +1109,12 @@ _getxy(PyObject *xy, int *x, int *y) {
|
|||
} else if (PyFloat_Check(value)) {
|
||||
*x = (int)PyFloat_AS_DOUBLE(value);
|
||||
} else {
|
||||
goto badval;
|
||||
PyObject *int_value = PyObject_CallMethod(value, "__int__", NULL);
|
||||
if (int_value != NULL && PyLong_Check(int_value)) {
|
||||
*x = PyLong_AS_LONG(int_value);
|
||||
} else {
|
||||
goto badval;
|
||||
}
|
||||
}
|
||||
|
||||
value = PyTuple_GET_ITEM(xy, 1);
|
||||
|
@ -1118,7 +1123,12 @@ _getxy(PyObject *xy, int *x, int *y) {
|
|||
} else if (PyFloat_Check(value)) {
|
||||
*y = (int)PyFloat_AS_DOUBLE(value);
|
||||
} else {
|
||||
goto badval;
|
||||
PyObject *int_value = PyObject_CallMethod(value, "__int__", NULL);
|
||||
if (int_value != NULL && PyLong_Check(int_value)) {
|
||||
*y = PyLong_AS_LONG(int_value);
|
||||
} else {
|
||||
goto badval;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue
Block a user