Skip to content

Commit ae43b36

Browse files
committed
Simplified code now that I;16* modes are the only IMAGING_TYPE_SPECIAL
1 parent 5122c83 commit ae43b36

File tree

2 files changed

+6
-34
lines changed

2 files changed

+6
-34
lines changed

src/_imaging.c

Lines changed: 5 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -543,12 +543,7 @@ getpixel(Imaging im, ImagingAccess access, int x, int y) {
543543
case IMAGING_TYPE_FLOAT32:
544544
return PyFloat_FromDouble(pixel.f);
545545
case IMAGING_TYPE_SPECIAL:
546-
if (im->bands == 1) {
547-
return PyLong_FromLong(pixel.h);
548-
} else {
549-
return Py_BuildValue("BBB", pixel.b[0], pixel.b[1], pixel.b[2]);
550-
}
551-
break;
546+
return PyLong_FromLong(pixel.h);
552547
}
553548

554549
/* unknown type */
@@ -665,26 +660,10 @@ getink(PyObject *color, Imaging im, char *ink) {
665660
memcpy(ink, &ftmp, sizeof(ftmp));
666661
return ink;
667662
case IMAGING_TYPE_SPECIAL:
668-
if (isModeI16(im->mode)) {
669-
ink[0] = (UINT8)r;
670-
ink[1] = (UINT8)(r >> 8);
671-
ink[2] = ink[3] = 0;
672-
return ink;
673-
} else {
674-
if (rIsInt) {
675-
b = (UINT8)(r >> 16);
676-
g = (UINT8)(r >> 8);
677-
r = (UINT8)r;
678-
} else if (tupleSize != 3) {
679-
PyErr_SetString(
680-
PyExc_TypeError,
681-
"color must be int, or tuple of one or three elements"
682-
);
683-
return NULL;
684-
} else if (!PyArg_ParseTuple(color, "iiL", &b, &g, &r)) {
685-
return NULL;
686-
}
687-
}
663+
ink[0] = (UINT8)r;
664+
ink[1] = (UINT8)(r >> 8);
665+
ink[2] = ink[3] = 0;
666+
return ink;
688667
}
689668

690669
PyErr_SetString(PyExc_ValueError, wrong_mode);

src/libImaging/Geometry.c

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -714,14 +714,7 @@ getfilter(Imaging im, int filterid) {
714714
case IMAGING_TYPE_UINT8:
715715
return nearest_filter8;
716716
case IMAGING_TYPE_SPECIAL:
717-
switch (im->pixelsize) {
718-
case 1:
719-
return nearest_filter8;
720-
case 2:
721-
return nearest_filter16;
722-
case 4:
723-
return nearest_filter32;
724-
}
717+
return nearest_filter16;
725718
}
726719
} else {
727720
return nearest_filter32;

0 commit comments

Comments
 (0)