Commit Graph

176 Commits

Author SHA1 Message Date
Andrew Murray
6cad0d62e7 Do not crop again if glyph is the same as the previous one 2024-01-01 16:14:45 +11:00
Andrew Murray
8676cbd4e7 Do not try and crop glyphs from outside of source ImageFont image 2024-01-01 16:13:24 +11:00
Andrew Murray
ceca12e876
Restored comment 2023-10-07 07:00:29 +00:00
Andrew Murray
d9283fd1f8
Use default value
Co-authored-by: Alexander Karpinsky <homm86@gmail.com>
2023-10-07 17:09:17 +11:00
Andrew Murray
57c1cf603e Fixed may be used uninitialized warning 2023-10-07 01:15:04 +11:00
Andrew Murray
4e7f61f459
Merge branch 'main' into bgr 2023-10-06 18:50:25 +11:00
Andrew Murray
c167d7a269 Allow GaussianBlur and BoxBlur to accept a sequence of x and y radii 2023-08-12 12:09:20 +10:00
Andrew Murray
9bd574058e Support BGR;15, BGR;16 and BGR;24 in putdata 2023-07-26 20:09:40 +10:00
Andrew Murray
3230270aa7 Added BGR;15, BGR;16 and BGR;24 access 2023-07-26 20:09:40 +10:00
Yay295
e7398c7888 update PyTypeObject slot names
tp_print was renamed to tp_vectorcall_offset with Python 3.8, and tp_compare was renamed to tp_as_async with Python 3.5.
tp_size has always been tp_basicsize; I don't know why that one was wrong.
2023-07-02 00:52:08 -05:00
Andrew Murray
17b19b5668 Merge branch 'main' into apng 2023-06-14 11:26:42 +10:00
Andrew Murray
aeb6e9909e Removed unused argument 2023-06-10 15:57:05 +10:00
Andrew Murray
96bdbc4afe Renamed variable 2023-04-29 19:11:02 +10:00
Andrew Murray
ebd3c47425 When saving, allow alpha differences to indicate different frames 2023-04-29 15:02:11 +10:00
Andrew Murray
59d67fa68a Only call PyTuple_Check once in getink 2023-03-31 21:59:06 +11:00
Andrew Murray
d84e227204 Fixed warning that variable may be uninitialized 2023-03-31 21:52:37 +11:00
Hugo van Kemenade
f191666a91
Merge pull request #6999 from radarhere/null
Handle failure from PyDict_New or PyList_New
2023-03-31 08:32:13 +03:00
Andrew Murray
0ea1184bcf
Free additional variables
Co-authored-by: Ondrej Baranovič <3819630+nulano@users.noreply.github.com>
2023-03-30 07:54:01 +11:00
Andrew Murray
d5d830dd00 Merge branch 'main' into bgr32 2023-03-25 23:45:48 +11:00
Andrew Murray
dc79a09d62 Merge branch 'main' into null 2023-03-22 18:56:52 +11:00
nulano
1a11ba662c
do not insert null into dict 2023-03-21 22:05:26 +00:00
Andrew Murray
6328662248 PyUnicode_* may return NULL 2023-03-20 17:36:55 +11:00
Andrew Murray
11d100ce5d Support creating BGR;15, BGR;16 and BGR;24 images 2023-03-20 00:30:10 +11:00
Andrew Murray
01cdfb6b27 Removed duplicate calls to PyTuple_GET_SIZE 2023-03-19 23:29:17 +11:00
Andrew Murray
b3d7823740 Decrement reference count 2023-03-12 00:11:48 +11:00
Andrew Murray
c63b0ca210 Decrement reference count 2023-03-11 18:32:43 +11:00
Andrew Murray
929dbba834 Handle failure from PyDict_New or PyList_New 2023-03-10 17:37:06 +11:00
Andrew Murray
a4965a7eaa Split into x and y errors 2023-03-01 22:06:40 +11:00
Andrew Murray
b84c29a035 Raise an error if co-ordinates are incorrectly ordered 2023-03-01 11:22:35 +11:00
Hugo van Kemenade
826c98156c Remove unused listwindows functions for Windows/3.12 support 2023-02-11 16:36:52 +02:00
Andrew Murray
08816f43ae Added support for I;16 modes in putdata() 2022-12-26 18:35:24 +11:00
Eric Soroos
41987cffad Fix compiler error:
src/_imaging.c:1842:17: warning: ‘ImagingTransform’ accessing 64 bytes in a region of size 48 [-Wstringop-overflow=]
       1842 |         imOut = ImagingTransform(
            |                 ^~~~~~~~~~~~~~~~~
       1843 |             imOut, imIn, IMAGING_TRANSFORM_AFFINE, 0, 0, xsize, ysize, a, filter, 1);
            |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      src/_imaging.c:1842:17: note: referencing argument 8 of type ‘double *’
2022-11-03 22:57:39 +01:00
Andrew Murray
948c064b28 Allow getpalette() to return less than 256 colors 2022-02-16 09:56:13 +11:00
Andrew Murray
9cdb0508b6 Attach RGBA palettes from putpalette() when suitable 2022-02-14 20:28:47 +11:00
Andrew Murray
e0d5417bcd Raise an error if sequence is not flattened 2021-12-28 09:38:41 +11:00
Andrew Murray
e9294d890f Accept float values for putdata() in Python 3.10 2021-12-28 09:38:41 +11:00
Andrew Murray
90a52d3c0d Added width argument to polygon 2021-11-16 22:02:54 +11:00
Andrew Murray
aa4489c993 Keep palette the same length 2021-06-19 09:31:46 +10:00
Hugo van Kemenade
affa059e95
Merge pull request #5504 from radarhere/tuple_size
Added specific error messages when ink has incorrect number of bands
2021-05-23 17:18:38 +03:00
Andrew Murray
a1412681ff Added specific error messages when ink has incorrect number of bands 2021-05-19 20:19:57 +10:00
Andrew Murray
ff0c0afb2c Use PyTuple_GET_SIZE since variable is known to be a tuple 2021-05-19 19:51:45 +10:00
Andrew Murray
29c6f53e99 Use METH_NOARGS when no arguments are required 2021-05-11 20:19:17 +10:00
Andrew Murray
f2ee5d6697 Use METH_VARARGS flags 2021-05-11 20:16:44 +10:00
Hugo van Kemenade
683affa29c
Merge pull request #5206 from radarhere/numpy 2021-03-31 17:46:32 +03:00
Andrew Murray
685e951182 Removed unused C code 2021-01-30 11:23:24 +11:00
Andrew Murray
bdbf1694fc Allow PixelAccess to use Python __int__ when parsing x and y 2021-01-14 21:31:25 +11:00
Andrew Murray
cf190a3c2f PyModule_AddObject fix for Python 3.10 2021-01-09 12:17:57 +11:00
Andrew Murray
46b7e86bab Format with ClangFormat 2021-01-03 14:17:51 +11:00
Andrew Murray
26e5929617 Fixed comparison between int and unsigned long 2020-12-22 16:06:44 +11:00
Andrew Murray
0eddc82157
Merge pull request #5108 from cgohlke/patch-1
Fix dereferencing potential null pointer
2020-12-22 08:26:48 +11:00
Christoph Gohlke
d1e706d756
return ImagingError_MemoryError 2020-12-19 19:42:29 -08:00
Andrew Murray
b7fb39fff8 Use ImagingError_MemoryError NULL return value 2020-12-20 13:00:16 +11:00
Andrew Murray
75542fea6d Replaced PyErr_NoMemory with ImagingError_MemoryError 2020-12-20 13:00:10 +11:00
Christoph Gohlke
7673cb7549
Fix dereferencing potential null pointer 2020-12-19 14:57:55 -08:00
Hugo van Kemenade
f9852c0381
Merge branch 'master' into fix-imagingHinclude 2020-10-14 14:50:36 +03:00
Hugo van Kemenade
309cb9e5c4
Merge pull request #4927 from radarhere/tuple 2020-10-12 14:40:22 +03:00
Hugo van Kemenade
15c339470d
Merge pull request #4523 from xtsm/ellipse
Implemented another ellipse drawing algorithm
2020-10-11 18:04:34 +03:00
Andrew Murray
e01081bf8b
Improved error message
Co-authored-by: nulano <nulano@nulano.eu>
2020-09-22 08:36:29 +10:00
Andrew Murray
27c0747518 Allow tuples with one item to give single color value in getink 2020-09-20 14:23:05 +10:00
Axel Huebl
f79379ed7c Imaging.h: confusion with system
The file `libImaging/Imaging.h` gets installed flat on
Ubuntus into the public Python includes.

When building a newer version of Pillow from source and
hinting the Python includes "too early" in includes, e.g.
in package managers, this can confuse the two files and
pick up the external file over the internal one. With
different versions, this mismatch can lead to build errors,
e.g. undefined macros.

The most robust way to avoid this is to pre-fix the internal
include accordingly, so that the relative path to the including
file has to match as well.
2020-09-17 18:06:45 +10:00
nulano
4bb78d53a3 give proper error message for invalid putpixel color type 2020-08-20 00:01:03 +02:00
Stanislau Tsitsianok
7dedb1402f
Merge remote-tracking branch 'upstream/master' into ellipse 2020-06-29 23:31:25 +03:00
Stanislau Tsitsianok
96f69eb287
Replaced drawing algorithm for arcs, chords and pies 2020-06-29 17:21:53 +03:00
nulano
6c1ff252d6 check run-time version numbers where available, add docs 2020-06-21 18:58:39 +10:00
Andrew Murray
3a75e843f4 Added braces 2020-05-11 07:46:12 +10:00
Andrew Murray
c1d9931adc Added braces 2020-05-10 19:56:36 +10:00
Hugo
dda6145fce Since Python 3.3 IOError and WindowsError have been merged into OSError 2020-04-10 12:57:29 +03:00
Hugo van Kemenade
b5cf165f9e
Merge pull request #4260 from nulano/imagegrab_xcb
ImageGrab.grab() for Linux with XCB
2020-03-31 23:03:21 +03:00
nulano
3c39e6fcf6 xcb screengrab support 2020-03-24 19:29:44 +11:00
Dag Wästberg
2e02500fa6 change function names to snake_case 2020-02-19 19:38:53 +11:00
Dag Wästberg
13c1b7070d add Overlay chop 2020-02-19 19:24:36 +11:00
Dag Wästberg
5e5dfbad81 add hardlight and softlight chops 2020-02-19 19:23:09 +11:00
Andrew Murray
f77c409742 Renamed variable 2019-12-31 09:04:25 +11:00
Andrew Murray
34d04d3e82 Replaced distutils with C version check 2019-12-28 09:57:49 +11:00
Alexander
5283141417 Merge branch 'master' into reduce 2019-12-05 14:23:28 +03:00
Alexander
5838d77c0e args test 2019-12-05 03:24:38 +03:00
Alexander
778b5f9fed add box parameter 2019-12-04 23:13:20 +03:00
Alexander
fba833e1f4 final set of special cases 2019-11-26 01:18:48 +03:00
Alexander
335f5431de dummy method 2019-11-24 17:39:49 +03:00
Hugo van Kemenade
5006401d0b
Merge branch 'master' into rm-2.7 2019-11-03 22:48:26 +02:00
Hugo
af770a6c55 Drop support for EOL Python 2.7 2019-10-07 14:30:59 +03:00
nulano
5f4c1e113c add libimagequant to features.py 2019-09-27 00:34:45 +02:00
Andrew Murray
13224bf029 Removed unused argument 2019-07-04 20:07:33 +10:00
Rolf Eike Beer
7a4af2b767 fix unaligned accesses by using memcpy() 2019-06-29 21:04:11 +02:00
Hugo
08c47925d0
Added an image.entropy() method (#3608)
Added an `image.entropy()` method
2019-06-29 10:12:34 +03:00
Andrew Murray
1a71faf8ea Removed variable 2019-06-26 19:15:47 +10:00
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
Jayakrishna Menon
37516fb665 adding an upper limit for blocks_max in _set_blocks_max 2019-06-26 19:08:07 +10:00
Andrew Murray
e131fa22e2 Fixed reading and saving for TIFF and IM in PA mode 2019-05-11 14:43:48 +10:00
Andrew Murray
dba38912fb Allow putpalette for LA and PA 2019-03-29 23:13:50 +11:00
Andrew Murray
97c2848963 Fixed deprecation warnings 2019-03-26 13:50:57 +11:00
cgohlke
86afcfd8f9
Fix possible integer overflow 2019-01-25 15:11:22 -08:00
Hugo
78bc4da131
Merge pull request #3350 from radarhere/custom_tags
Added custom int and float TIFF tags
2018-12-26 13:07:46 +02:00
Hugo
55e5b7de6c
Merge pull request #3393 from frenzymadness/CWE_fixes_master
Fixes for issues reported by static code analysis
2018-12-26 13:02:19 +02:00
Andrew Murray
49b23157c4 Include header 2018-12-13 19:18:17 +11:00
Andrew Murray
7172a44caa Added libjpegturbo to check_feature 2018-12-12 21:25:05 +11:00
Andrew Murray
ddf8593e7b Do not write custom tags with libtiff < 4 2018-11-12 06:14:04 +11:00
Nazime
86324a842d Add setting negative pixels and unittest 2018-10-15 12:51:24 +02:00
Nazime
468c405a47 Image pixels negative index 2018-10-14 16:12:58 +02:00
Lumir Balhar
78bf8ea041 Fix potential leaked storage issues (CWE-772) 2018-10-02 14:06:21 +02:00