mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-07-10 16:22:22 +03:00
Merge 849ffd6075
into 7d50816f0a
This commit is contained in:
commit
dd14d2e301
|
@ -3185,7 +3185,7 @@ def frombuffer(
|
||||||
from . import ImagePalette
|
from . import ImagePalette
|
||||||
|
|
||||||
im.palette = ImagePalette.ImagePalette("RGB", im.im.getpalette("RGB"))
|
im.palette = ImagePalette.ImagePalette("RGB", im.im.getpalette("RGB"))
|
||||||
im.readonly = 1
|
im.readonly = im.im.readonly
|
||||||
return im
|
return im
|
||||||
|
|
||||||
return frombytes(mode, size, data, decoder_name, args)
|
return frombytes(mode, size, data, decoder_name, args)
|
||||||
|
|
|
@ -319,7 +319,7 @@ class ImageFile(Image.Image):
|
||||||
self.im = Image.core.map_buffer(
|
self.im = Image.core.map_buffer(
|
||||||
self.map, self.size, decoder_name, offset, args
|
self.map, self.size, decoder_name, offset, args
|
||||||
)
|
)
|
||||||
readonly = 1
|
readonly = self.im.readonly
|
||||||
# After trashing self.im,
|
# After trashing self.im,
|
||||||
# we might need to reload the palette data.
|
# we might need to reload the palette data.
|
||||||
if self.palette:
|
if self.palette:
|
||||||
|
|
|
@ -3722,6 +3722,11 @@ _getattr_unsafe_ptrs(ImagingObject *self, void *closure) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static PyObject *
|
||||||
|
_getattr_readonly(ImagingObject *self, void *closure) {
|
||||||
|
return PyLong_FromLong(self->image->readonly);
|
||||||
|
}
|
||||||
|
|
||||||
static struct PyGetSetDef getsetters[] = {
|
static struct PyGetSetDef getsetters[] = {
|
||||||
{"mode", (getter)_getattr_mode},
|
{"mode", (getter)_getattr_mode},
|
||||||
{"size", (getter)_getattr_size},
|
{"size", (getter)_getattr_size},
|
||||||
|
@ -3729,6 +3734,7 @@ static struct PyGetSetDef getsetters[] = {
|
||||||
{"id", (getter)_getattr_id},
|
{"id", (getter)_getattr_id},
|
||||||
{"ptr", (getter)_getattr_ptr},
|
{"ptr", (getter)_getattr_ptr},
|
||||||
{"unsafe_ptrs", (getter)_getattr_unsafe_ptrs},
|
{"unsafe_ptrs", (getter)_getattr_unsafe_ptrs},
|
||||||
|
{"readonly", (getter)_getattr_readonly},
|
||||||
{NULL}
|
{NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -86,6 +86,7 @@ struct ImagingMemoryInstance {
|
||||||
int bands; /* Number of bands (1, 2, 3, or 4) */
|
int bands; /* Number of bands (1, 2, 3, or 4) */
|
||||||
int xsize; /* Image dimension. */
|
int xsize; /* Image dimension. */
|
||||||
int ysize;
|
int ysize;
|
||||||
|
int readonly;
|
||||||
|
|
||||||
/* Colour palette (for "P" images only) */
|
/* Colour palette (for "P" images only) */
|
||||||
ImagingPalette palette;
|
ImagingPalette palette;
|
||||||
|
|
|
@ -59,6 +59,7 @@ ImagingNewPrologueSubtype(const char *mode, int xsize, int ysize, int size) {
|
||||||
im->xsize = xsize;
|
im->xsize = xsize;
|
||||||
im->ysize = ysize;
|
im->ysize = ysize;
|
||||||
|
|
||||||
|
im->readonly = 0;
|
||||||
im->type = IMAGING_TYPE_UINT8;
|
im->type = IMAGING_TYPE_UINT8;
|
||||||
|
|
||||||
if (strcmp(mode, "1") == 0) {
|
if (strcmp(mode, "1") == 0) {
|
||||||
|
|
|
@ -126,6 +126,7 @@ PyImaging_MapBuffer(PyObject *self, PyObject *args) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
im->readonly = view.readonly;
|
||||||
/* setup file pointers */
|
/* setup file pointers */
|
||||||
if (ystep > 0) {
|
if (ystep > 0) {
|
||||||
for (y = 0; y < ysize; y++) {
|
for (y = 0; y < ysize; y++) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user