mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-02-05 22:20:54 +03:00
use more mode enums in decode.c
This commit is contained in:
parent
cb682445cf
commit
4f9b68c192
30
src/decode.c
30
src/decode.c
|
@ -318,17 +318,18 @@ PyObject *
|
|||
PyImaging_BitDecoderNew(PyObject *self, PyObject *args) {
|
||||
ImagingDecoderObject *decoder;
|
||||
|
||||
char *mode;
|
||||
const char *mode_name;
|
||||
int bits = 8;
|
||||
int pad = 8;
|
||||
int fill = 0;
|
||||
int sign = 0;
|
||||
int ystep = 1;
|
||||
if (!PyArg_ParseTuple(args, "s|iiiii", &mode, &bits, &pad, &fill, &sign, &ystep)) {
|
||||
if (!PyArg_ParseTuple(args, "s|iiiii", &mode_name, &bits, &pad, &fill, &sign, &ystep)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (strcmp(mode, "F") != 0) {
|
||||
const ModeID mode = findModeID(mode_name);
|
||||
if (mode != IMAGING_MODE_F) {
|
||||
PyErr_SetString(PyExc_ValueError, "bad image mode");
|
||||
return NULL;
|
||||
}
|
||||
|
@ -358,34 +359,36 @@ PyObject *
|
|||
PyImaging_BcnDecoderNew(PyObject *self, PyObject *args) {
|
||||
ImagingDecoderObject *decoder;
|
||||
|
||||
char *mode;
|
||||
char *actual;
|
||||
char *mode_name;
|
||||
int n = 0;
|
||||
char *pixel_format = "";
|
||||
if (!PyArg_ParseTuple(args, "si|s", &mode, &n, &pixel_format)) {
|
||||
if (!PyArg_ParseTuple(args, "si|s", &mode_name, &n, &pixel_format)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const ModeID mode = findModeID(mode_name);
|
||||
ModeID actual;
|
||||
|
||||
switch (n) {
|
||||
case 1: /* BC1: 565 color, 1-bit alpha */
|
||||
case 2: /* BC2: 565 color, 4-bit alpha */
|
||||
case 3: /* BC3: 565 color, 2-endpoint 8-bit interpolated alpha */
|
||||
case 7: /* BC7: 4-channel 8-bit via everything */
|
||||
actual = "RGBA";
|
||||
actual = IMAGING_MODE_RGBA;
|
||||
break;
|
||||
case 4: /* BC4: 1-channel 8-bit via 1 BC3 alpha block */
|
||||
actual = "L";
|
||||
actual = IMAGING_MODE_L;
|
||||
break;
|
||||
case 5: /* BC5: 2-channel 8-bit via 2 BC3 alpha blocks */
|
||||
case 6: /* BC6: 3-channel 16-bit float */
|
||||
actual = "RGB";
|
||||
actual = IMAGING_MODE_RGB;
|
||||
break;
|
||||
default:
|
||||
PyErr_SetString(PyExc_ValueError, "block compression type unknown");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (strcmp(mode, actual) != 0) {
|
||||
if (mode != actual) {
|
||||
PyErr_SetString(PyExc_ValueError, "bad image mode");
|
||||
return NULL;
|
||||
}
|
||||
|
@ -428,15 +431,16 @@ PyObject *
|
|||
PyImaging_GifDecoderNew(PyObject *self, PyObject *args) {
|
||||
ImagingDecoderObject *decoder;
|
||||
|
||||
char *mode;
|
||||
const char *mode_name;
|
||||
int bits = 8;
|
||||
int interlace = 0;
|
||||
int transparency = -1;
|
||||
if (!PyArg_ParseTuple(args, "s|iii", &mode, &bits, &interlace, &transparency)) {
|
||||
if (!PyArg_ParseTuple(args, "s|iii", &mode_name, &bits, &interlace, &transparency)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (strcmp(mode, "L") != 0 && strcmp(mode, "P") != 0) {
|
||||
const ModeID mode = findModeID(mode_name);
|
||||
if (mode != IMAGING_MODE_L && mode != IMAGING_MODE_P) {
|
||||
PyErr_SetString(PyExc_ValueError, "bad image mode");
|
||||
return NULL;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user