diff --git a/CHANGES.rst b/CHANGES.rst index bfa4a7204..bba01ce42 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -325,7 +325,7 @@ Changelog (Pillow) - Adjust buffer size when quality=keep, fixes #148 (again) [wiredfool] -- Fix for corrupted bitmaps embedded in truetype fonts. #1072 +- Fix for corrupted bitmaps embedded in truetype fonts. #1072 [jackyyf, wiredfool] 2.7.0 (2015-01-01) @@ -412,7 +412,7 @@ Changelog (Pillow) 2.6.2 (2015-01-01) ------------------ -- Fix CVE-2014-9601, potential PNG decompression DOS #1060 +- Fix CVE-2014-9601, potential PNG decompression DOS #1060 [wiredfool] - Fix Regression in PyPy 2.4 in streamio #958 @@ -1081,7 +1081,7 @@ Changelog (Pillow) .. Note:: Special thanks to Christoph Gohlke and Eric Soroos for assisting with a pre-PyCon 2013 release! -- Many other bug fixes and enhancements by many other people. +- Many other bug fixes and enhancements by many other people. - Add Python 3 support. (Pillow >= 2.0.0 supports Python 2.6, 2.7, 3.2, 3.3. Pillow < 2.0.0 supports Python 2.4, 2.5, 2.6, 2.7.) [fluggo] diff --git a/PIL/Image.py b/PIL/Image.py index f09168708..bc194f754 100644 --- a/PIL/Image.py +++ b/PIL/Image.py @@ -2269,7 +2269,7 @@ def open(fp, mode="r"): return im except (SyntaxError, IndexError, TypeError, struct.error): # Leave disabled by default, spams the logs with image - # opening failures that are entirely expected. + # opening failures that are entirely expected. #logger.debug("", exc_info=True) continue return None diff --git a/RELEASING.md b/RELEASING.md index e30fe2821..4496af2c1 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -42,8 +42,8 @@ Released as needed for security, installation or critical bug fixes. ``` * [ ] In compliance with https://www.python.org/dev/peps/pep-0440/, update version identifier in: ``` - PIL/__init__.py - setup.py + PIL/__init__.py + setup.py _imaging.c appveyor.yml ``` diff --git a/Tests/images/bmp/html/bmpsuite.html b/Tests/images/bmp/html/bmpsuite.html index 6604102bb..b8e327ed9 100644 --- a/Tests/images/bmp/html/bmpsuite.html +++ b/Tests/images/bmp/html/bmpsuite.html @@ -144,7 +144,7 @@ level of support for it is arguably not important.

q/pal8rletrns.bmp 3 -
+
or

or
diff --git a/Tests/test_file_tiff.py b/Tests/test_file_tiff.py index 357b5dc9d..4cf83534d 100644 --- a/Tests/test_file_tiff.py +++ b/Tests/test_file_tiff.py @@ -251,7 +251,7 @@ class TestFileTiff(PillowTestCase): {256: (55,), 257: (43,), 258: (8, 8, 8, 8), 259: (1,), 262: (2,), 296: (2,), 273: (8,), 338: (1,), 277: (4,), 279: (9460,), 282: ((720000, 10000),), - 283: ((720000, 10000),), 284: (1,)}) + 283: ((720000, 10000),), 284: (1,)}) def test__delitem__(self): filename = "Tests/images/pil136.tiff" diff --git a/_imaging.c b/_imaging.c index d6d49aa29..8d7e01685 100644 --- a/_imaging.c +++ b/_imaging.c @@ -395,8 +395,8 @@ getlist(PyObject* arg, int* length, const char* wrong_length, int type) for (i = 0; i < n; i++) { op = PySequence_Fast_GET_ITEM(seq, i); - // DRY, branch prediction is going to work _really_ well - // on this switch. And 3 fewer loops to copy/paste. + // DRY, branch prediction is going to work _really_ well + // on this switch. And 3 fewer loops to copy/paste. switch (type) { case TYPE_UINT8: itemp = PyInt_AsLong(op); @@ -3101,7 +3101,7 @@ static struct PyMethodDef methods[] = { {"unsharp_mask", (PyCFunction)_unsharp_mask, 1}, #endif - {"box_blur", (PyCFunction)_box_blur, 1}, + {"box_blur", (PyCFunction)_box_blur, 1}, #ifdef WITH_EFFECTS /* Special effects */ diff --git a/_imagingcms.c b/_imagingcms.c index cda7c5f1f..198900c2b 100644 --- a/_imagingcms.c +++ b/_imagingcms.c @@ -49,7 +49,7 @@ http://www.cazabon.com\n\ /* known to-do list with current version: - Verify that PILmode->littleCMStype conversion in findLCMStype is correct for all + Verify that PILmode->littleCMStype conversion in findLCMStype is correct for all PIL modes (it probably isn't for the more obscure ones) Add support for creating custom RGB profiles on the fly @@ -454,7 +454,7 @@ createProfile(PyObject *self, PyObject *args) } else if (strcmp(sColorSpace, "XYZ") == 0) { hProfile = cmsCreateXYZProfile(); - } + } else if (strcmp(sColorSpace, "sRGB") == 0) { hProfile = cmsCreate_sRGBProfile(); } @@ -554,10 +554,10 @@ _profile_getattr(CmsProfileObject* self, cmsInfoType field) { // UNDONE -- check that I'm getting the right fields on these. // return PyUnicode_DecodeFSDefault(cmsTakeProductName(self->profile)); - //wchar_t buf[256]; -- UNDONE need wchar_t for unicode version. + //wchar_t buf[256]; -- UNDONE need wchar_t for unicode version. char buf[256]; cmsUInt32Number written; - written = cmsGetProfileInfoASCII(self->profile, + written = cmsGetProfileInfoASCII(self->profile, field, "en", "us", @@ -566,40 +566,40 @@ _profile_getattr(CmsProfileObject* self, cmsInfoType field) if (written) { return PyUnicode_FromString(buf); } - // UNDONE suppressing error here by sending back blank string. + // UNDONE suppressing error here by sending back blank string. return PyUnicode_FromString(""); } static PyObject* cms_profile_getattr_product_desc(CmsProfileObject* self, void* closure) -{ +{ // description was Description != 'Copyright' || or "%s - %s" (manufacturer, model) in 1.x return _profile_getattr(self, cmsInfoDescription); } -/* use these four for the individual fields. +/* use these four for the individual fields. */ static PyObject* cms_profile_getattr_product_description(CmsProfileObject* self, void* closure) -{ +{ return _profile_getattr(self, cmsInfoDescription); } static PyObject* cms_profile_getattr_product_model(CmsProfileObject* self, void* closure) -{ +{ return _profile_getattr(self, cmsInfoModel); } static PyObject* cms_profile_getattr_product_manufacturer(CmsProfileObject* self, void* closure) -{ +{ return _profile_getattr(self, cmsInfoManufacturer); } static PyObject* cms_profile_getattr_product_copyright(CmsProfileObject* self, void* closure) -{ +{ return _profile_getattr(self, cmsInfoCopyright); } diff --git a/_imagingft.c b/_imagingft.c index 8ec7fd471..a34fb8af9 100644 --- a/_imagingft.c +++ b/_imagingft.c @@ -128,11 +128,11 @@ getfont(PyObject* self_, PyObject* args, PyObject* kw) /* Don't free this before FT_Done_Face */ self->font_bytes = PyMem_Malloc(font_bytes_size); if (!self->font_bytes) { - error = 65; // Out of Memory in Freetype. + error = 65; // Out of Memory in Freetype. } if (!error) { memcpy(self->font_bytes, font_bytes, (size_t)font_bytes_size); - error = FT_New_Memory_Face(library, (FT_Byte*)self->font_bytes, + error = FT_New_Memory_Face(library, (FT_Byte*)self->font_bytes, font_bytes_size, index, &self->face); } } @@ -152,7 +152,7 @@ getfont(PyObject* self_, PyObject* args, PyObject* kw) if (error) { if (self->font_bytes) { PyMem_Free(self->font_bytes); - } + } PyObject_Del(self); return geterror(error); } @@ -228,8 +228,8 @@ font_getsize(FontObject* self, PyObject* args) x += delta.x; } - /* Note: bitmap fonts within ttf fonts do not work, see #891/pr#960 - * Yifu Yu, 2014-10-15 + /* Note: bitmap fonts within ttf fonts do not work, see #891/pr#960 + * Yifu Yu, 2014-10-15 */ error = FT_Load_Glyph(face, index, FT_LOAD_DEFAULT|FT_LOAD_NO_BITMAP); if (error) @@ -443,7 +443,7 @@ font_dealloc(FontObject* self) FT_Done_Face(self->face); if (self->font_bytes) { PyMem_Free(self->font_bytes); - } + } PyObject_Del(self); } diff --git a/_imagingmorph.c b/_imagingmorph.c index 1dee7eb64..70779d036 100644 --- a/_imagingmorph.c +++ b/_imagingmorph.c @@ -109,7 +109,7 @@ apply(PyObject *self, PyObject* args) unsigned char b7 = nrow[col_idx]&1; unsigned char b8 = nrow[cip]&1; - int lut_idx = (b0 + int lut_idx = (b0 |(b1 << 1) |(b2 << 2) |(b3 << 3) @@ -199,7 +199,7 @@ match(PyObject *self, PyObject* args) unsigned char b7 = nrow[col_idx]&1; unsigned char b8 = nrow[cip]&1; - int lut_idx = (b0 + int lut_idx = (b0 |(b1 << 1) |(b2 << 2) |(b3 << 3) diff --git a/docs/build.rst b/docs/build.rst index cac366e09..c9c7808e5 100644 --- a/docs/build.rst +++ b/docs/build.rst @@ -33,11 +33,11 @@ Download Python 3.4, install it, and add it to the path. This is the Python that we will use to bootstrap the build process. (The download routines are using 3.2+ features, and installing 3.4 gives us pip and virtualenv as well, reducing the number of packages that we need to -install.) +install.) Download the rest of the Pythons by opening a command window, changing to the `winbuild` directory, and running `python -get_pythons.py`. +get_pythons.py`. UNDONE -- gpg verify the signatures (note that we can download from https) @@ -67,13 +67,13 @@ Dependencies The script 'build_dep.py' downloads and builds the dependencies. Open a command window, change directory into `winbuild` and run `python -build_dep.py`. +build_dep.py`. This will download libjpeg, libtiff, libz, and freetype. It will then compile 32 and 64-bit versions of the libraries, with both versions of -the compilers. +the compilers. -UNDONE -- lcms fails. +UNDONE -- lcms fails. UNDONE -- webp, jpeg2k not recognized Building Pillow @@ -82,7 +82,7 @@ Building Pillow Once the dependencies are built, run `python build.py --clean` to build and install Pillow in virtualenvs for each python build. `build.py --dist` will build Windows installers instead of -installing into virtualenvs. +installing into virtualenvs. UNDONE -- suppressed output, what about failures. diff --git a/docs/handbook/concepts.rst b/docs/handbook/concepts.rst index 07b9fce4b..2dc509a13 100644 --- a/docs/handbook/concepts.rst +++ b/docs/handbook/concepts.rst @@ -12,12 +12,12 @@ Bands An image can consist of one or more bands of data. The Python Imaging Library allows you to store several bands in a single image, provided they all have the same dimensions and depth. For example, a PNG image might have 'R', 'G', 'B', -and 'A' bands for the red, green, blue, and alpha transparency values. Many +and 'A' bands for the red, green, blue, and alpha transparency values. Many operations act on each band separately, e.g., histograms. It is often useful to think of each pixel as having one value per band. To get the number and names of bands in an image, use the -:py:meth:`~PIL.Image.Image.getbands` method. +:py:meth:`~PIL.Image.Image.getbands` method. .. _concept-modes: @@ -43,7 +43,7 @@ PIL also provides limited support for a few special modes, including ``LA`` (L with alpha), ``RGBX`` (true color with padding) and ``RGBa`` (true color with premultiplied alpha). However, PIL doesn’t support user-defined modes; if you to handle band combinations that are not listed above, use a sequence of Image -objects. +objects. You can read the mode of an image through the :py:attr:`~PIL.Image.Image.mode` attribute. This is a string containing one of the above values. diff --git a/docs/handbook/image-file-formats.rst b/docs/handbook/image-file-formats.rst index bf999a592..2b69f2414 100644 --- a/docs/handbook/image-file-formats.rst +++ b/docs/handbook/image-file-formats.rst @@ -471,13 +471,13 @@ The :py:meth:`~PIL.Image.Image.open` method sets the following .. versionadded:: 1.1.5 **resolution** - Image resolution as an ``(xres, yres)`` tuple, where applicable. This is a + Image resolution as an ``(xres, yres)`` tuple, where applicable. This is a measurement in whichever unit is specified by the file. .. versionadded:: 1.1.5 -The :py:attr:`~PIL.Image.Image.tag_v2` attribute contains a dictionary of +The :py:attr:`~PIL.Image.Image.tag_v2` attribute contains a dictionary of TIFF metadata. The keys are numerical indexes from `~PIL.TiffTags.TAGS_V2`. Values are strings or numbers for single items, multiple values are returned in a tuple of values. Rational numbers are returned as a single value. diff --git a/docs/reference/ImageDraw.rst b/docs/reference/ImageDraw.rst index b93581949..7d3ad570c 100644 --- a/docs/reference/ImageDraw.rst +++ b/docs/reference/ImageDraw.rst @@ -81,7 +81,7 @@ Example: Draw Partial Opacity Text from PIL import Image, ImageDraw, ImageFont # get an image - base = Image.open('Pillow/Tests/images/lena.png').convert('RGBA') + base = Image.open('Pillow/Tests/images/lena.png').convert('RGBA') # make a blank image for the text, initialized to transparent text color txt = Image.new('RGBA', base.size, (255,255,255,0)) @@ -89,7 +89,7 @@ Example: Draw Partial Opacity Text # get a font fnt = ImageFont.truetype('Pillow/Tests/fonts/FreeMono.ttf', 40) # get a drawing context - d = ImageDraw.Draw(txt) + d = ImageDraw.Draw(txt) # draw text, half opacity d.text((10,10), "Hello", font=fnt, fill=(255,255,255,128)) diff --git a/docs/reference/ImageMath.rst b/docs/reference/ImageMath.rst index 00249a601..5d7345d79 100644 --- a/docs/reference/ImageMath.rst +++ b/docs/reference/ImageMath.rst @@ -27,7 +27,7 @@ Example: Using the :py:mod:`~PIL.ImageMath` module In the current version, :py:mod:`~PIL.ImageMath` only supports single-layer images. To process multi-band images, use the - :py:meth:`~PIL.Image.Image.split` method or :py:func:`~PIL.Image.merge` + :py:meth:`~PIL.Image.Image.split` method or :py:func:`~PIL.Image.merge` function. :param expression: A string which uses the standard Python expression diff --git a/docs/reference/ImageMorph.rst b/docs/reference/ImageMorph.rst index eaf3b1c5e..be9d59348 100644 --- a/docs/reference/ImageMorph.rst +++ b/docs/reference/ImageMorph.rst @@ -4,7 +4,7 @@ :py:mod:`ImageMorph` Module =========================== -The :py:mod:`ImageMorph` module provides morphology operations on images. +The :py:mod:`ImageMorph` module provides morphology operations on images. .. automodule:: PIL.ImageMorph :members: diff --git a/docs/reference/OleFileIO.rst b/docs/reference/OleFileIO.rst index 74c4b7b36..b66bfc60d 100644 --- a/docs/reference/OleFileIO.rst +++ b/docs/reference/OleFileIO.rst @@ -7,10 +7,10 @@ The :py:mod:`OleFileIO` module reads Microsoft OLE2 files (also called Structured Storage or Microsoft Compound Document File Format), such as Microsoft Office documents, Image Composer and FlashPix files, and -Outlook messages. +Outlook messages. This module is the `OleFileIO\_PL`_ project by Philippe Lagadec, v0.30, -merged back into Pillow. +merged back into Pillow. .. _OleFileIO\_PL: http://www.decalage.info/python/olefileio @@ -300,7 +300,7 @@ Close the OLE file Unless your application is a simple script that terminates after processing an OLE file, do not forget to close each OleFileIO object -after parsing to close the file on disk. +after parsing to close the file on disk. .. code-block:: python diff --git a/docs/reference/PixelAccess.rst b/docs/reference/PixelAccess.rst index 55ab8c578..f9d0cf31a 100644 --- a/docs/reference/PixelAccess.rst +++ b/docs/reference/PixelAccess.rst @@ -6,7 +6,7 @@ The PixelAccess class provides read and write access to :py:class:`PIL.Image` data at a pixel level. -.. note:: Accessing individual pixels is fairly slow. If you are looping over all of the pixels in an image, there is likely a faster way using other parts of the Pillow API. +.. note:: Accessing individual pixels is fairly slow. If you are looping over all of the pixels in an image, there is likely a faster way using other parts of the Pillow API. Example ------- diff --git a/docs/reference/plugins.rst b/docs/reference/plugins.rst index f7f897f59..46f657fce 100644 --- a/docs/reference/plugins.rst +++ b/docs/reference/plugins.rst @@ -228,7 +228,7 @@ Plugin reference :mod:`PngImagePlugin` Module ---------------------------- -.. automodule:: PIL.PngImagePlugin +.. automodule:: PIL.PngImagePlugin :members: ChunkStream, PngImageFile, PngStream, getchunks, is_cid, putchunk :show-inheritance: .. autoclass:: PIL.PngImagePlugin.ChunkStream diff --git a/docs/releasenotes/2.7.0.rst b/docs/releasenotes/2.7.0.rst index 65a8f2d11..a51ca81b4 100644 --- a/docs/releasenotes/2.7.0.rst +++ b/docs/releasenotes/2.7.0.rst @@ -4,8 +4,8 @@ Sane Plugin ----------- -The Sane plugin has now been split into its own repo: -https://github.com/python-pillow/Sane . +The Sane plugin has now been split into its own repo: +https://github.com/python-pillow/Sane . Png text chunk size limits @@ -14,7 +14,7 @@ Png text chunk size limits To prevent potential denial of service attacks using compressed text chunks, there are now limits to the decompressed size of text chunks decoded from PNG images. If the limits are exceeded when opening a PNG -image a ``ValueError`` will be raised. +image a ``ValueError`` will be raised. Individual text chunks are limited to :py:attr:`PIL.PngImagePlugin.MAX_TEXT_CHUNK`, set to 1MB by diff --git a/docs/releasenotes/3.0.0.rst b/docs/releasenotes/3.0.0.rst index 95f6be132..9cc1de98c 100644 --- a/docs/releasenotes/3.0.0.rst +++ b/docs/releasenotes/3.0.0.rst @@ -31,7 +31,7 @@ Deprecated Methods Several methods that have been marked as deprecated for many releases have been removed in this release:: - Image.tostring() + Image.tostring() Image.fromstring() Image.offset() ImageDraw.setink() @@ -47,6 +47,6 @@ LibJpeg and Zlib are Required by Default The external dependencies on libjpeg and zlib are now required by default. If the headers or libraries are not found, then installation will abort -with an error. This behaviour can be disabled with the ``--disable-libjpeg`` -and ``--disable-zlib`` flags. +with an error. This behaviour can be disabled with the ``--disable-libjpeg`` +and ``--disable-zlib`` flags. diff --git a/encode.c b/encode.c index c46d78426..2eb9ceb09 100644 --- a/encode.c +++ b/encode.c @@ -554,7 +554,7 @@ static unsigned int* get_qtables_arrays(PyObject* qtables, int* qtablesLen) { tables = PySequence_Fast(qtables, "expected a sequence"); num_tables = PySequence_Size(qtables); if (num_tables < 1 || num_tables > NUM_QUANT_TBLS) { - PyErr_SetString(PyExc_ValueError, + PyErr_SetString(PyExc_ValueError, "Not a valid number of quantization tables. Should be between 1 and 4."); Py_DECREF(tables); return NULL; @@ -582,7 +582,7 @@ static unsigned int* get_qtables_arrays(PyObject* qtables, int* qtablesLen) { Py_DECREF(table_data); } - *qtablesLen = num_tables; + *qtablesLen = num_tables; JPEG_QTABLES_ERR: Py_DECREF(tables); // Run on both error and not error diff --git a/libImaging/Convert.c b/libImaging/Convert.c index 757367604..f32e91bad 100644 --- a/libImaging/Convert.c +++ b/libImaging/Convert.c @@ -259,14 +259,14 @@ rgb2hsv(UINT8* out, const UINT8* in, int xsize) g = in[1]; b = in[2]; - maxc = MAX(r,MAX(g,b)); + maxc = MAX(r,MAX(g,b)); minc = MIN(r,MIN(g,b)); uv = maxc; if (minc == maxc){ *out++ = 0; *out++ = 0; *out++ = uv; - } else { + } else { cr = (float)(maxc-minc); s = cr/(float)maxc; rc = ((float)(maxc-r))/cr; @@ -280,7 +280,7 @@ rgb2hsv(UINT8* out, const UINT8* in, int xsize) h = 4.0 + gc-rc; } // incorrect hue happens if h/6 is negative. - h = fmod((h/6.0 + 1.0), 1.0); + h = fmod((h/6.0 + 1.0), 1.0); uh = (UINT8)CLIP((int)(h*255.0)); us = (UINT8)CLIP((int)(s*255.0)); @@ -313,10 +313,10 @@ hsv2rgb(UINT8* out, const UINT8* in, int xsize) *out++ = v; *out++ = v; *out++ = v; - } else { + } else { i = floor((float)h * 6.0 / 255.0); // 0 - 6 - f = (float)h * 6.0 / 255.0 - (float)i; // 0-1 : remainder. - fs = ((float)s)/255.0; + f = (float)h * 6.0 / 255.0 - (float)i; // 0-1 : remainder. + fs = ((float)s)/255.0; p = round((float)v * (1.0-fs)); q = round((float)v * (1.0-fs*f)); @@ -326,32 +326,32 @@ hsv2rgb(UINT8* out, const UINT8* in, int xsize) ut = (UINT8)CLIP(t); switch (i%6) { - case 0: + case 0: *out++ = v; *out++ = ut; *out++ = up; break; - case 1: + case 1: *out++ = uq; *out++ = v; *out++ = up; break; - case 2: + case 2: *out++ = up; *out++ = v; *out++ = ut; break; - case 3: + case 3: *out++ = up; *out++ = uq; *out++ = v; break; - case 4: + case 4: *out++ = ut; *out++ = up; *out++ = v; break; - case 5: + case 5: *out++ = v; *out++ = up; *out++ = uq; @@ -418,7 +418,7 @@ rgba2rgba(UINT8* out, const UINT8* in, int xsize) } } -/* RGBa -> RGBA conversion to remove premultiplication +/* RGBa -> RGBA conversion to remove premultiplication Needed for correct transforms/resizing on RGBA images */ static void rgba2rgbA(UINT8* out, const UINT8* in, int xsize) @@ -442,13 +442,13 @@ rgba2rgbA(UINT8* out, const UINT8* in, int xsize) } /* - * Conversion of RGB + single transparent color to RGBA, - * where any pixel that matches the color will have the + * Conversion of RGB + single transparent color to RGBA, + * where any pixel that matches the color will have the * alpha channel set to 0 */ static void -rgbT2rgba(UINT8* out, int xsize, int r, int g, int b) +rgbT2rgba(UINT8* out, int xsize, int r, int g, int b) { #ifdef WORDS_BIGENDIAN UINT32 trns = ((r & 0xff)<<24) | ((g & 0xff)<<16) | ((b & 0xff)<<8) | 0xff; @@ -1334,8 +1334,8 @@ ImagingConvertTransparent(Imaging imIn, const char *mode, return (Imaging) ImagingError_ModeError(); } - if (!((strcmp(imIn->mode, "RGB") == 0 || - strcmp(imIn->mode, "L") == 0) + if (!((strcmp(imIn->mode, "RGB") == 0 || + strcmp(imIn->mode, "L") == 0) && strcmp(mode, "RGBA") == 0)) #ifdef notdef { @@ -1370,7 +1370,7 @@ ImagingConvertTransparent(Imaging imIn, const char *mode, } ImagingSectionLeave(&cookie); - return imOut; + return imOut; } diff --git a/libImaging/Incremental.c b/libImaging/Incremental.c index 84e20acf6..f34765423 100644 --- a/libImaging/Incremental.c +++ b/libImaging/Incremental.c @@ -175,7 +175,7 @@ ImagingIncrementalCodecCreate(ImagingIncrementalCodecEntry codec_entry, codec->state = state; codec->result = 0; codec->stream.fd = fd; - codec->stream.buffer = codec->stream.ptr = codec->stream.end + codec->stream.buffer = codec->stream.ptr = codec->stream.end = codec->stream.top = NULL; codec->started = 0; codec->seekable = seekable; @@ -294,7 +294,7 @@ ImagingIncrementalCodecDestroy(ImagingIncrementalCodec codec) if (codec->seekable && codec->stream.fd < 0) free (codec->stream.buffer); - codec->stream.buffer = codec->stream.ptr = codec->stream.end + codec->stream.buffer = codec->stream.ptr = codec->stream.end = codec->stream.top = NULL; #ifdef _WIN32 diff --git a/libImaging/Jpeg2KDecode.c b/libImaging/Jpeg2KDecode.c index abf8cebbe..07bee2b5e 100644 --- a/libImaging/Jpeg2KDecode.c +++ b/libImaging/Jpeg2KDecode.c @@ -68,7 +68,7 @@ j2k_skip(OPJ_OFF_T p_nb_bytes, void *p_user_data) typedef void (*j2k_unpacker_t)(opj_image_t *in, const JPEG2KTILEINFO *tileInfo, - const UINT8 *data, + const UINT8 *data, Imaging im); struct j2k_decode_unpacker { @@ -625,7 +625,7 @@ j2k_decode_entry(Imaging im, ImagingCodecState state, } } - /* + /* Colorspace Number of components PIL mode ------------------------------------------------------ sRGB 3 RGB @@ -668,7 +668,7 @@ j2k_decode_entry(Imaging im, ImagingCodecState state, if (!unpack) { state->errcode = IMAGING_CODEC_BROKEN; state->state = J2K_STATE_FAILED; - goto quick_exit; + goto quick_exit; } /* Decode the image tile-by-tile; this means we only need use as much diff --git a/libImaging/Jpeg2KEncode.c b/libImaging/Jpeg2KEncode.c index 868cfdb41..3c6323eca 100644 --- a/libImaging/Jpeg2KEncode.c +++ b/libImaging/Jpeg2KEncode.c @@ -303,7 +303,7 @@ j2k_encode_entry(Imaging im, ImagingCodecState state, prec = 16; bpp = 12; } else if (strcmp (im->mode, "LA") == 0) { - components = 2; + components = 2; color_space = OPJ_CLRSPC_GRAY; pack = j2k_pack_la; } else if (strcmp (im->mode, "RGB") == 0) { @@ -544,8 +544,8 @@ ImagingJpeg2KEncode(Imaging im, ImagingCodecState state, UINT8 *buf, int bytes) return -1; if (state->state == J2K_STATE_START) { - int seekable = (context->format != OPJ_CODEC_J2K - ? INCREMENTAL_CODEC_SEEKABLE + int seekable = (context->format != OPJ_CODEC_J2K + ? INCREMENTAL_CODEC_SEEKABLE : INCREMENTAL_CODEC_NOT_SEEKABLE); context->encoder = ImagingIncrementalCodecCreate(j2k_encode_entry, diff --git a/libImaging/JpegEncode.c b/libImaging/JpegEncode.c index 3fe5d753f..5bcba2aa4 100644 --- a/libImaging/JpegEncode.c +++ b/libImaging/JpegEncode.c @@ -300,7 +300,7 @@ ImagingJpegEncode(Imaging im, ImagingCodecState state, UINT8* buf, int bytes) if (context->qtables) { free(context->qtables); context->qtables = NULL; - } + } jpeg_destroy_compress(&context->cinfo); /* if (jerr.pub.num_warnings) return BROKEN; */ diff --git a/libImaging/Pack.c b/libImaging/Pack.c index d174d7d0d..d83cb8284 100644 --- a/libImaging/Pack.c +++ b/libImaging/Pack.c @@ -400,7 +400,7 @@ ImagingPackLAB(UINT8* out, const UINT8* in, int pixels) /* LAB triplets */ for (i = 0; i < pixels; i++) { out[0] = in[0]; - out[1] = in[1] ^ 128; /* signed in outside world */ + out[1] = in[1] ^ 128; /* signed in outside world */ out[2] = in[2] ^ 128; out += 3; in += 4; } diff --git a/libImaging/PcxDecode.c b/libImaging/PcxDecode.c index af282cfe4..e5417f1bd 100644 --- a/libImaging/PcxDecode.c +++ b/libImaging/PcxDecode.c @@ -62,8 +62,8 @@ ImagingPcxDecode(Imaging im, ImagingCodecState state, UINT8* buf, int bytes) int stride = state->bytes / bands; int i; for (i=1; i< bands; i++) { // note -- skipping first band - memmove(&state->buffer[i*state->xsize], - &state->buffer[i*stride], + memmove(&state->buffer[i*state->xsize], + &state->buffer[i*stride], state->xsize); } } diff --git a/libImaging/PcxEncode.c b/libImaging/PcxEncode.c index c1f64a33d..c73f49a24 100644 --- a/libImaging/PcxEncode.c +++ b/libImaging/PcxEncode.c @@ -94,10 +94,10 @@ ImagingPcxEncode(Imaging im, ImagingCodecState state, UINT8* buf, int bytes) while (state->x < planes * bytes_per_line) { /* If we're encoding an odd width file, and we've got more than one plane, we need to pad each - color row with padding bytes at the end. Since + color row with padding bytes at the end. Since The pixels are stored RRRRRGGGGGBBBBB, so we need - to have the padding be RRRRRPGGGGGPBBBBBP. Hence - the double loop + to have the padding be RRRRRPGGGGGPBBBBBP. Hence + the double loop */ while (state->x % bytes_per_line) { @@ -174,8 +174,8 @@ ImagingPcxEncode(Imaging im, ImagingCodecState state, UINT8* buf, int bytes) } /* reset for the next color plane. */ if (state->x < planes * bytes_per_line) { - state->count = 1; - state->LAST = state->buffer[state->x]; + state->count = 1; + state->LAST = state->buffer[state->x]; state->x++; } } diff --git a/libImaging/Unpack.c b/libImaging/Unpack.c index 522e9b04c..3fab73cec 100644 --- a/libImaging/Unpack.c +++ b/libImaging/Unpack.c @@ -758,13 +758,13 @@ unpackCMYKI(UINT8* out, const UINT8* in, int pixels) /* Unpack to "LAB" image */ /* There are two representations of LAB images for whatever precision: L: Uint (in PS, it's 0-100) - A: Int (in ps, -128 .. 128, or elsewhere 0..255, with 128 as middle. - Channels in PS display a 0 value as middle grey, + A: Int (in ps, -128 .. 128, or elsewhere 0..255, with 128 as middle. + Channels in PS display a 0 value as middle grey, LCMS appears to use 128 as the 0 value for these channels) - B: Int (as above) + B: Int (as above) - Since we don't have any signed ints, we're going with the shifted versions - internally, and we'll unshift for saving and whatnot. + Since we don't have any signed ints, we're going with the shifted versions + internally, and we'll unshift for saving and whatnot. */ void ImagingUnpackLAB(UINT8* out, const UINT8* in, int pixels) @@ -802,15 +802,15 @@ unpackI16N_I16(UINT8* out, const UINT8* in, int pixels){ static void unpackI12_I16(UINT8* out, const UINT8* in, int pixels){ - /* Fillorder 1/MSB -> LittleEndian, for 12bit integer greyscale tiffs. + /* Fillorder 1/MSB -> LittleEndian, for 12bit integer greyscale tiffs. - According to the TIFF spec: + According to the TIFF spec: FillOrder = 2 should be used only when BitsPerSample = 1 and the data is either uncompressed or compressed using CCITT 1D or 2D compression, to avoid potentially ambiguous situations. - Yeah. I thought so. We'll see how well people read the spec. + Yeah. I thought so. We'll see how well people read the spec. We've got several fillorder=2 modes in TiffImagePlugin.py There's no spec I can find. It appears that the in storage