Commit Graph

8835 Commits

Author SHA1 Message Date
Alexander Böhn
7b815a5f1d Added an image.entropy() method
This calculates the entropy for the image, based on the histogram.

Because this uses image histogram data directly, the existing C
function underpinning the `image.histogram()` method was abstracted
into a static function to parse extrema tuple arguments, and a new
C function was added to calculate image entropy, making use of the
new static extrema function.

The extrema-parsing function was written by @homm, based on the
macro abstraction I wrote, during the discussion of my first
entropy-method pull request: https://git.io/fhodS

The new `image.entropy()` method is based on `image.histogram()`,
and will accept the same arguments to calculate the histogram data
it will use to assess the entropy of the image.

The algorithm and methodology is based on existing Python code:

* https://git.io/fhmIU

... A test case in the `Tests/` directory, and doctest lines in
`selftest.py`, have both been added and checked.

Changes proposed in this pull request:

* Added “math.h” include to _imaging.c
* The addition of an `image.entropy()` method to the `Image`
  Python class,
* The abstraction of the extrema-parsing logic of of the C
  function `_histogram` into a static function, and
* The use of that static function in both the `_histogram` and
  `_entropy` C functions.
* Minor documentation addenda in the docstrings for both the
  `image.entropy()` and `image.histogram()` methods were also
  added.
* Removed outdated boilerplate from testing code
* Removed unused “unittest” import
2019-06-26 19:15:47 +10:00
Hugo
a79147ff96
Merge pull request #3916 from cgohlke/patch-1
Fix memory leak
2019-06-26 12:09:50 +03:00
Hugo
f2d0106a9b
Merge pull request #3917 from cgohlke/patch-2
Fix potential null pointer is passed into memcpy
2019-06-26 12:09:22 +03:00
Andrew Murray
f22198e3bc Lint fixes 2019-06-26 19:09:02 +10:00
Hugo
2aaacc8849
Merge pull request #3918 from cgohlke/patch-3
Use ssize_t to store number of elements in buffer
2019-06-26 12:08:35 +03:00
Andrew Murray
d591cf8d3f Error is not raised on 64-bit systems 2019-06-26 19:08:07 +10:00
Jayakrishna Menon
590b5b7f9e test case for set_blocks_max 2019-06-26 19:08:07 +10:00
Jayakrishna Menon
2acc098cab adding testcase for overflow 2019-06-26 19:08:07 +10:00
Jayakrishna Menon
494fb25bdb adding testcase for overflow 2019-06-26 19:08:07 +10:00
Jayakrishna Menon
37516fb665 adding an upper limit for blocks_max in _set_blocks_max 2019-06-26 19:08:07 +10:00
Christoph Gohlke
afed559e4f
Fix msvc9 compile error 2019-06-25 17:18:37 -07:00
Christoph Gohlke
c34cefb576
Use ssize_t to store number of elements in buffer 2019-06-25 14:41:06 -07:00
Christoph Gohlke
a78341e26c
Fix potential null pointer is passed into memcpy 2019-06-25 14:23:20 -07:00
Oliver Tonnhofer
2b7d8be536 tiff: add support for JPEG quality
Uses JPEGQUALITY pseudo-tag from libtiff.

Also changes the way tags are passed to PyImaging_LibTiffEncoderNew from
dict to list to ensure that COMPRESSION tag is added before JPEGQUALITY.
This is required as the COMPRESSION tag registers the JPEGQUALITY
pseudo-tag.
2019-06-26 06:33:54 +10:00
Christoph Gohlke
47f7eba279
Fix memory leak 2019-06-25 13:33:49 -07:00
Oliver Tonnhofer
61add9d6b0 Improve encoding of TIFF tags
- Pass tagtype from v2 directory to libtiff encoder, instead of
autodetecting type.
- Use explicit types. E.g. uint32_t for TIFF_LONG to fix issues on
platforms with 64bit longs.
- Add support for multiple values (arrays). Requires type in v2
directory and values must be passed as a tuple.
- Add support for signed types (e.g. TIFFTypes.TIFF_SIGNED_SHORT).
2019-06-26 06:33:19 +10:00
Andrew Murray
25cf1010eb Lint fixes 2019-06-25 22:20:57 +10:00
nulano
983371d4d8 fix centos, amazon 2019-06-25 22:16:00 +10:00
nulano
be192d8f69 fix lint 2019-06-25 22:16:00 +10:00
nulano
5f65f10191 add test for #3777 2019-06-25 22:16:00 +10:00
nulano
92ff050bf9 replace PyUnicode_GetLength and PyUnicode_ReadChar with macro versions 2019-06-25 22:14:48 +10:00
nulano
6aba1df727 update Py_UNICODE to Py_UCS4 2019-06-25 22:14:47 +10:00
Hugo
ea570a8c5b
Merge pull request #3915 from radarhere/typo
Fixed typos
2019-06-25 11:41:58 +03:00
Hugo
d31069072b
Added CMYK;16B and CMYK;16N unpackers (#3913)
Added CMYK;16B and CMYK;16N unpackers
2019-06-25 11:41:51 +03:00
Andrew Murray
78d4b7f03e Fixed typos 2019-06-25 05:54:14 +10:00
Hugo
73884576d4 Some styling and wording 2019-06-24 11:04:13 +03:00
Hugo
72bf9f6529 Use the common test-suite image 2019-06-24 10:48:33 +03:00
Hugo
fd1d779ae1 Strip trailing whitespace 2019-06-24 10:45:53 +03:00
Andrew Murray
d00e18b017 Updated test result 2019-06-23 14:01:51 +10:00
David Nisson
ddb61cfbd2 updated tests to match new tile descriptors 2019-06-23 13:59:20 +10:00
David Nisson
5857bf8243 corrected args to reflect change to tile descriptors 2019-06-23 13:49:41 +10:00
David Nisson
cb7d9bcd12 updated TIFF tile descriptors to match current decoding functionality 2019-06-23 13:49:15 +10:00
Jeffery To
4119d3015b Include CPPFLAGS when searching for libraries
This adds CPPFLAGS to the list of environment variables (currently
CFLAGS and LDFLAGS) searched when looking for includes and library
directories, as CPPFLAGS may also include -I options.
2019-06-23 12:06:06 +10:00
Andrew Murray
9c37933bb9 Added CMYK;16B and CMYK;16N unpackers 2019-06-23 11:56:17 +10:00
Andrew Murray
7bb16de81c Fixed crash when loading non-font bytes 2019-06-23 11:53:01 +10:00
Andrew Murray
db4916849e Added ImageSequence all_frames 2019-06-23 07:34:39 +10:00
Andrew Murray
e0cbfb2708 Consider I;16 pixel size when drawing 2019-06-23 07:33:55 +10:00
Andrew Murray
32d10505a3
Merge pull request #3914 from radarhere/black
Fixed black formatting
2019-06-23 07:17:45 +10:00
Hugo
c1b3adbd1b
Merge pull request #3910 from radarhere/xrgb
Changed bits value for XRGB unpackers
2019-06-22 10:24:24 +03:00
Andrew Murray
68fac40147 Fixed black formatting 2019-06-22 14:47:56 +10:00
Hugo
f5cd8b4b0d
Merge pull request #3909 from hugovk/run-black
Format code with Black
2019-06-22 06:46:15 +03:00
Andrew Murray
0a73e31415 Added note about RGBX padding 2019-06-21 19:37:43 +10:00
Hugo
9d5a50a0fd
Moved issue template into directory (#3908)
Moved issue template into directory
2019-06-20 14:00:06 +03:00
Hugo
14373c8723
Added release notes for #3802 and #3856 (#3911)
Added release notes for #3802 and #3856
2019-06-20 13:52:31 +03:00
Andrew Murray
dfa9e7aeff
Apply suggestions from code review [ci skip]
Co-Authored-By: Hugo <hugovk@users.noreply.github.com>
2019-06-20 20:31:57 +10:00
Andrew Murray
1d1edb8fc4 Added release notes for #3802 and #3856 [ci skip] 2019-06-20 20:01:43 +10:00
Andrew Murray
414c9aafec Moved issue template into directory 2019-06-20 19:07:00 +10:00
Hugo
f2be7c4580
Merge pull request #3903 from hugovk/update-issue-template
Advice on general questions, bug reports and feature requests
2019-06-20 08:16:11 +03:00
Hugo
c711a423be
Update CHANGES.rst 2019-06-19 17:06:18 +03:00
Hugo
26182dde13
Fixed bugs in calculating text size (#3864)
Fixed bugs in calculating text size
2019-06-19 17:04:57 +03:00