Commit Graph

1782 Commits

Author SHA1 Message Date
wiredfool
c0f0268651 Merge pull request #2667 from vytisb/exif_zerodivision
Fix ZeroDivisionError when EXIF contains invalid DPI (0/0).
2017-08-16 15:39:20 +01:00
wiredfool
e2602452f4 Merge pull request #2661 from uploadcare/get-channel
New Image.getchannel method
2017-08-16 15:33:54 +01:00
wiredfool
680a7ac43b Merge branch 'master' into fli 2017-08-16 11:46:55 +01:00
wiredfool
b56d533aea Merge pull request #2650 from hugovk/fix-fli-seek-load
Test animated FLI file
2017-08-16 11:44:35 +01:00
wiredfool
a4e2dfd33e Merge pull request #2646 from radarhere/sgi
Moved SgiImagePlugin save error to before the start of write operations
2017-08-16 11:39:08 +01:00
wiredfool
3967e00bcd Merge pull request #2641 from hugovk/fix-unexpected-align
Fix unexpected keyword argument 'align'
2017-08-16 11:37:12 +01:00
wiredfool
c448db3170 Merge pull request #2640 from hugovk/version-newlines
Add newlines to error message for clarity
2017-08-16 11:36:11 +01:00
Andrew Murray
11399b18ce Moved SgiImagePlugin save error to before the start of write operations 2017-08-13 11:55:37 +10:00
Alexander
b1c1a22401 turn on multiband filters for kernels and gaussian 2017-08-13 00:37:06 +03:00
Alexander
b11bba108e accept multiband images in filter (noop) 2017-08-13 00:03:50 +03:00
Alexander
91b08b7daa noop core.merge 2017-08-12 19:08:07 +03:00
Alexander
559836d97d im.split method
ImagingSplit function without implementation
2017-08-12 15:26:00 +03:00
Alexander
e16ab0ad2e add tests, fix implementation 2017-08-12 14:10:39 +03:00
Alexander
a1e2d42ea0 text fixes 2017-08-12 10:32:42 +03:00
Andrew Murray
25e467a756 Use frame count from FLI header 2017-08-12 12:11:36 +10:00
Alexander
b46b5c4e84 release notes
autodocs
fix docstring
note for `Image.split`
2017-08-12 01:24:53 +03:00
Alexander Karpinsky
09a2e1641b Merge branch 'master' into resample-roi 2017-08-11 19:10:11 +03:00
Vytis Banaitis
7c8e0e4457 Fix ZeroDivisionError when EXIF contains invalid DPI (0/0). 2017-08-09 16:16:14 +03:00
Alexander
1a7cb317be load image before getting channels 2017-08-09 02:39:53 +03:00
Alexander
349e300d7b use getchannel where is possible 2017-08-09 02:36:07 +03:00
Alexander
0002e18c74 New Image.getchannel method 2017-08-09 01:58:22 +03:00
Hugo
d039be7cdd Python 3 division fix 2017-08-04 14:51:02 +03:00
Andrew Murray
1df63eeb1a Added file pointer save to SpiderImagePlugin 2017-07-29 10:20:13 +10:00
Hugo
90886a4e59 Merge pull request #2632 from wiredfool/issue_2628
Fix JPEG DPI when EXIF is invalid
2017-07-25 11:01:29 +03:00
Joe Hultgren
0272dc2736 Add targa version 2 footer
Add the footer that is part of the version 2 spec. Some applications don't like images without the footer. Such as perforce's p4merge tool.
2017-07-24 13:49:18 -07:00
Hugo
ff81201971 Fix unexpected keyword argument 'align' 2017-07-23 23:58:05 +03:00
Hugo
96abb60059 Add newlines to error message for clarity 2017-07-23 23:39:40 +03:00
Oliver Tonnhofer
9e7de70bac Delete transparency info when convert'ing RGB/L to RGBA
info['transparency] was not removed when an RGB or L image
was converted to RGBA. This could result in unexpected behavior
when saving the resulting image.

Other image conversions already delete or update the transparency
info. There is a shortcut for RGB/L to RGBA which missed this.
2017-07-18 15:00:09 +02:00
wiredfool
7a8161162f fix for https://github.com/python-pillow/Pillow/issues/2628#issuecomment-315962612 2017-07-18 00:54:11 -07:00
wiredfool
377bbc781e Merge pull request #2626 from radarhere/imagedraw
Improved ImageDraw documentation
2017-07-16 16:27:47 +01:00
Andrew Murray
9406e8ea81 Corrected alpha_composite args documentation 2017-07-16 17:37:51 +10:00
Andrew Murray
a05c2cf7ff Improved ImageDraw documentation 2017-07-16 15:22:46 +10:00
wiredfool
912b0f077a Merge pull request #2612 from kijeong/request
Don't shadow built-in dict.
2017-07-06 10:59:01 +01:00
wiredfool
0d3712afe4 4.3.0.dev0 version bump 2017-07-06 02:57:44 -07:00
kijeong kim
580b6fbc06 [etc] Changed parameter name from dict_ to dictionary. 2017-07-06 17:31:55 +09:00
kijeong kim
afce29ea74 [etc] Fix built-in name. 2017-07-06 14:23:06 +09:00
wiredfool
acb19d8e45 4.2.0 version bump 2017-07-01 05:46:24 -07:00
wiredfool
b9b5d39f2b Merge pull request #2595 from wiredfool/issue_1911
Image.Image.alpha_composite Added
2017-07-01 11:43:58 +01:00
wiredfool
8feac899dd Merge pull request #2576 from wiredfool/pr_2284
Complex Text Support
2017-07-01 10:45:18 +01:00
nediamond
d1b66e9dfd Added threshold parameter to ImageDraw.floodfill (#2599)
* added thresh option and test

* fixed up, test works and passes

* Update test_imagedraw.py

* Update test_imagedraw.py

* Update ImageDraw.py

* removed pypy skip decorator from thresh test

* Update ImageDraw.py
2017-07-01 10:37:02 +01:00
wiredfool
90a9913705 Font.getsize needs direction and features 2017-06-29 07:01:38 -07:00
wiredfool
1c16baca51 Merge pull request #2588 from radarhere/gs
Added dBATCH parameter to ghostscript command
2017-06-29 13:59:16 +01:00
wiredfool
9bc50d8f5c Merge pull request #2596 from Darou/master
Adjust buffer size when icc_profile > MAXBLOCK (issue #148)
2017-06-29 13:18:29 +01:00
wiredfool
dc04930699 Merge pull request #2517 from wiredfool/single_version
RFC: Specify Version in one place
2017-06-29 13:17:02 +01:00
wiredfool
92b8db1935 Docs, wording 2017-06-29 05:14:43 -07:00
Fran Barba
ebaa509d66 Adjust buffer size when icc_profile > MAXBLOCK (issue #148)
We were encountering some errors when saving specific JPEG images.
The error was shown in stderr as:
  IOError: encoder error -2 when writing image file

And on stdout it printed:
    Suspension not allowed here

The problem was the bufsize not contemplating the icc_profile block.
2017-06-28 12:11:33 +02:00
wiredfool
c7efd0bf6d re-organized the parameters, moved size specification to overlay tuple 2017-06-27 22:03:44 +01:00
wiredfool
1d33dfbced Added source point parameter for Image.Image.alpha_composite 2017-06-27 22:03:44 +01:00
wiredfool
69768c514b Added inplace alpha composite 2017-06-27 22:03:44 +01:00
Andrew Murray
bcd1fb7908 Added dBATCH parameter to ghostscript command 2017-06-22 20:31:14 +10:00
wiredfool
b8c04de043 added layout engine switch 2017-06-21 14:00:15 -07:00
wiredfool
42831098ac Fix RAQM feature detection 2017-06-21 14:00:15 -07:00
Fahad Al-Saidi
eb75a942f2 fix build 2017-06-21 14:00:15 -07:00
Fahad Al-Saidi
e07a254ed9 update 2017-06-21 14:00:14 -07:00
shamsa
a77850564a Fix gitsize function. 2017-06-21 14:00:14 -07:00
shamsa
02d0bcbc6b Solve merge conflict 2017-06-21 14:00:14 -07:00
shamsa
fcd20da3cb Testing complex text layout. 2017-06-21 14:00:14 -07:00
shamsa
326e23d3e6 fallback code 2017-06-21 14:00:13 -07:00
shamsa
3e5007c84d Fix failure in test_imagefont.py 2017-06-21 14:00:13 -07:00
shamsa
0b178edbc8 Add complex text support.
This pull request adds support for languages that require complex text layout.

We are using the Raqm library, that wraps FriBidi (for bidirectional
text support) and HarfBuzz (for text shaping), and does proper BiDi and script
itemization:
https://github.com/HOST-Oman/libraqm

This should fix #1089.
2017-06-21 14:00:13 -07:00
wiredfool
edc8d8627c Fix to ensure that define is interpreted as a string on windows 2017-06-21 05:44:24 -07:00
wiredfool
5a671830d8 Merge pull request #2541 from uploadcare/fix-truncated-png-loading
Fix truncated png loading
2017-06-21 12:23:15 +01:00
wiredfool
fdc6e149fb Fix bad merge -- undoes minor speedup of copy instead of crop 2017-06-21 02:36:12 -07:00
wiredfool
228c5bb292 using the decompression bomb _crop filter 2017-06-21 02:36:11 -07:00
wiredfool
c70977aad7 added decompression bomb check to crop 2017-06-21 02:36:11 -07:00
wiredfool
f0c3df04af Merge pull request #2363 from SpamExperts/unbound_local_var_fix
Ensure that the `err_code` variable is initialized before using.
2017-06-14 09:17:23 +01:00
wiredfool
d2ce692f67 Use code for unknown error when initializing.
Any case where we hit the cleanup without otherwise setting err_code is some sort of caught error that we're not considering. May not be possible anymore
2017-06-13 22:35:12 +01:00
wiredfool
1f19c023e1 Merge pull request #2406 from blochl/multiframe_tiff
Allow to save tiff stacks from separate images
2017-06-13 22:30:35 +01:00
wiredfool
26050f25bd Merge pull request #2409 from wiredfool/draft
Clarify that draft is only implemented for JPEG and PCD
2017-06-13 22:24:02 +01:00
wiredfool
7622885f3c s/warning/note/ 2017-06-13 14:23:18 -07:00
wiredfool
8323ab1149 Merge pull request #2447 from hugovk/test-mic
Test MicImagePlugin for correctness
2017-06-13 22:20:44 +01:00
wiredfool
c3e041e9e6 Merge branch 'master' into rm-deprecated-fn 2017-06-13 13:32:38 +01:00
wiredfool
ae431bc9fb Merge pull request #2526 from radarhere/pdf
Added append_images to PDF saving
2017-06-13 13:25:50 +01:00
wiredfool
c16ba722f2 Merge pull request #2551 from jdufresne/keys
Remove unnecessary calls to dict.keys()
2017-06-13 13:12:48 +01:00
wiredfool
1cfb20a2a9 Merge pull request #2533 from hugovk/imagedraw
Add more ImageDraw.py tests and remove unused Draw.c code
2017-06-13 13:10:32 +01:00
wiredfool
38be701a9a Merge pull request #2554 from hugovk/test-imagemorph2
More unit tests for ImageMorph
2017-06-13 13:06:52 +01:00
wiredfool
4a8d260d76 Merge pull request #2552 from hugovk/test-mcidas
Test a McIDAS area file
2017-06-13 13:04:30 +01:00
Eric Soroos
bd18a10c87 Check the tk feature based on tkinter_finder 2017-06-13 04:38:26 -07:00
Eric Soroos
d012f50975 Simplify feature checking, fix transparent webp detection, add webpmux detection 2017-06-13 04:20:21 -07:00
hugovk
04f28b691e Test negate and fix a TypeError: list indices must be integers, not str 2017-05-30 18:02:20 +03:00
Dov Grobgeld
4d75070223 Fixed wrong expected size of luts read from disk. 2017-05-30 16:34:41 +03:00
Jon Dufresne
d244fbb299 Remove unnecessary calls to dict.keys()
iter(dict) is equivalent to iter(dict.keys()), so simply act on the dict
instead of adding the extra call.

Inspired by Lennart Regebro's PyCon 2017 presentation "Prehistoric
Patterns in Python". Available at:

https://www.youtube.com/watch?v=V5-JH23Vk0I
2017-05-28 09:55:38 -07:00
hugovk
9626e49c0b Test a McIDAS area file 2017-05-28 16:11:16 +03:00
hugovk
c70eb8a128 flake8 2017-05-27 23:55:14 +03:00
hugovk
e4d6223c94 Remove deprecated code due for removal in Pillow 4.2 (per PR #2010) 2017-05-27 23:20:03 +03:00
hugovk
e002207c5b Remove function deprecated and warning since 3.0 (1 Oct 2015) 2017-05-27 21:55:42 +03:00
hugovk
d85dffd150 Remove functions deprecated and warning since 2.0 (15 Mar 2013) and raising exceptions since 3.0 (1 Oct 2015) 2017-05-27 21:52:43 +03:00
wiredfool
b076b55623 Merge pull request #2530 from hugovk/compress-level
Fix Image.show compress_level typo
2017-05-27 14:38:32 +01:00
Alexander
a26a584812 Do not raise SyntaxError for wrong chunks (just ignore them) 2017-05-23 18:00:15 +03:00
Hugo
08c72a1720 flake8 2017-05-16 10:33:38 +03:00
Hugo
bb7596d8b6 Fix option typo 2017-05-14 12:14:29 +03:00
Joshua Blum
e763c2281f Update ImageFile.py 2017-05-13 12:07:16 -04:00
wiredfool
86bde427c3 refactor out options 2017-05-13 14:22:18 +01:00
wiredfool
dd5bfec11c save_ppm doesn't take kwargs 2017-05-13 14:22:18 +01:00
Hin-Tak Leung
9f8aeb5d8e put compress_level=1 inside Image._dump()
Better alternative to setting compress_level=1 than the secret handshake
in the last attempt.

The last in a series of changes to fix
https://github.com/python-pillow/Pillow/issues/2508
2017-05-13 14:22:18 +01:00
Hin-Tak Leung
74da5878c5 Do not down-convert if image is RGBA when showing.
The down-convert code would convert all RGB-based modes
(P RGB RGBX RGBA CMYK YCbCr LAB HSV) to RGB; but png can handle it!
2017-05-13 14:22:18 +01:00
Hin-Tak Leung
a2cb304f62 use PNG as intermediate format for viewing 2017-05-13 14:22:18 +01:00
Andrew Murray
80806d349f Added append_images to PDF saving 2017-05-13 14:26:52 +10:00
wiredfool
cdd2236dd2 Restore PIL version 2017-05-10 04:43:08 -07:00
wiredfool
4f1bab5c1b current version 2017-05-10 03:48:47 -07:00
wiredfool
8999ccb570 single version for build 2017-05-10 03:47:02 -07:00
Andrew Murray
37b293f593 Flake8 fixes 2017-04-20 21:14:23 +10:00
wiredfool
17f799ed16 Merge pull request #2484 from hugovk/exif-resolution-as-int
Fix for file with DPI in EXIF but not metadata, and XResolution is an int rather than tuple
2017-04-19 12:10:44 +01:00
wiredfool
df616d2b16 Merge pull request #2471 from radarhere/crop
Return copy on Image crop if crop dimensions match the image
2017-04-19 11:46:07 +01:00
wiredfool
2ac4f79e8c 4.2.0.pre0 version bump 2017-04-19 03:02:45 -07:00
Hugo
8b06fa9a21 Fix for file with DPI in EXIF but not metadata, and XResolution is an int rather than tuple 2017-04-11 14:07:31 +03:00
wiredfool
38eff74004 4.1.0 version bump 2017-04-04 11:10:22 -07:00
wiredfool
0834e9491e Merge pull request #2330 from wiredfool/pr_2032
Close files after loading when possible.
2017-04-03 23:32:06 +01:00
Hugo
53df62647a DPI is a tuple (#2472)
* DPI is a tuple

* Some EXIF only contains an X resolution for DPI

* Refactor

* Test with no DPI in EXIF

* Handle EXIF with no DPI

* Created with: exiftool "-*resolution*"= photoshop-200dpi.jpg

* Test when not in EXIF, DPI==72,72

* Use X resolution for Y, default to 72,72 dpi

* Created with: exiftool -exif:ResolutionUnit=cm photoshop-200dpi.jpg

* Test for EXIF with dpcm instead of dpi

* Convert dpcm to dpi, and default to inches if unit unknown
2017-04-03 23:28:33 +01:00
wiredfool
06b61f4e5b close the mmap when closing the image #2194 2017-04-03 08:06:59 -07:00
wiredfool
86c1704646 add _close_exclusive_fp_after_load flag 2017-04-03 08:06:58 -07:00
Andrew Murray
4dd7b94338 Return copy on Image crop if crop dimensions match Image dimensions 2017-03-31 13:02:56 +11:00
wiredfool
977f319234 Merge pull request #2449 from hugovk/dpi-from-exif
If DPI isn't in JPEG header, fetch from EXIF
2017-03-29 21:24:46 +01:00
wiredfool
9e2653c155 Merge pull request #2455 from cgohlke/patch-1
Remove superfluous import of FixTk
2017-03-22 21:18:27 +00:00
Christoph Gohlke
c6dc1f2878 Fix import of tkinter/Tkinter
Do not try to import the `tkinter` module on Python 2.x. `tkinter` is part of the `tkinter3000` package (Widget Construction Kit for Tkinter).
2017-03-22 10:32:42 -07:00
Christoph Gohlke
140c4b54c0 Remove superfluous import of FixTk
The `_imaging` module does not link against libtcl/libtk.
`FixTk` is imported by `import Tkinter` if necessary.
The `FixTk` module is for Python 2.x on Windows only.
2017-03-22 10:15:29 -07:00
wiredfool
b69b70198f Closing only single frame TIFF images 2017-03-14 23:17:22 +00:00
Hugo
07a9620959 If DPI isn't in JPEG header, fetch from EXIF 2017-03-14 11:49:10 +02:00
Hugo
b7d14b04b6 Test MicImagePlugin for correctness 2017-03-13 08:18:13 +02:00
homm
58484db509 close files after loading for some file types 2017-03-12 20:05:20 +00:00
homm
091d0c400c close fp if it was opened in ImageFile constructor 2017-03-12 20:05:20 +00:00
homm
88ec0bb52f close file in case of failures 2017-03-12 20:05:20 +00:00
wiredfool
c9f54c98a5 Merge pull request #1938 from wiredfool/python-decoder
Pure Python Decoders - fix for MSP decoding
2017-03-12 17:20:19 +00:00
wiredfool
31c1a651a3 fixed wording 2017-03-11 16:30:04 +00:00
wiredfool
40a94d4a42 Propagage ValueError out, rather than swallowing 2017-03-11 15:34:43 +00:00
wiredfool
38f43c1e5f review lint 2017-03-11 13:50:19 +00:00
wiredfool
c2cd5fe3d1 handles_eof was removed in 4.0 2017-03-11 13:50:19 +00:00
wiredfool
b668db33cd Updated versionadded to reflect 6-9 month slip [ci skip] 2017-03-11 13:50:19 +00:00
wiredfool
f13b335a60 Py2.7 compatibility 2017-03-11 13:50:19 +00:00
wiredfool
949932f45f Pure Python MSP Decoder 2017-03-11 13:50:19 +00:00
hugovk
e44773c76c Test with bad checksum 2017-03-11 13:50:19 +00:00
wiredfool
1c0d1c547e PyDecoder documentation 2017-03-11 13:50:19 +00:00
wiredfool
25bc5c76ab Pure python decoder registry 2017-03-11 13:50:19 +00:00
wiredfool
1428e4140a Test for identical handling of getheader/getdata 2017-03-08 01:35:15 -08:00
wiredfool
676d0c3b3b Can't use objects in default args 2017-03-08 01:35:15 -08:00
wiredfool
51b46e00c2 Refactor out passed in palette handling, add ImagePalette as an option, document palette format 2017-03-08 01:35:15 -08:00
wiredfool
f6b22bf0ab moved normalise_ functions together 2017-03-08 01:35:15 -08:00
wiredfool
abb7b7342e Added function docstring 2017-03-08 01:35:15 -08:00
wiredfool
770c423181 Regroup methods, add docstring comments 2017-03-08 01:35:15 -08:00
wiredfool
46287eb62a Renamed _get_local_header to _write_local_header 2017-03-08 01:35:15 -08:00
Andrew Murray
ab7e07c54d Added comment that getdata is legacy 2017-03-08 01:35:15 -08:00
wiredfool
aea2a4ca8d legacy getheader mutates the image 2017-03-08 01:35:14 -08:00
wiredfool
872bce552f Docstring Comments on methods 2017-03-08 01:35:14 -08:00
wiredfool
f5e836b442 removed extra param from _get_global_header 2017-03-08 01:35:14 -08:00
wiredfool
321c6165c9 removed extra params from _get_palette_bytes 2017-03-08 01:35:14 -08:00
wiredfool
b315b6ecf3 Don't requantize 'P' images 2017-03-08 01:35:14 -08:00
wiredfool
26e145c8a3 Refactor _convert_mode -> _normalize_mode 2017-03-08 01:34:31 -08:00
wiredfool
b9618b3ce7 Encoderinfo fix 2017-03-08 19:41:18 +11:00
wiredfool
cee397ab00 Refactor get_palette to do one thing, and not mutate the image in place 2017-03-08 19:41:18 +11:00
wiredfool
1e9afb3ecb Refactor out the palette remapping to Image.Image 2017-03-08 19:41:18 +11:00