Commit Graph

1143 Commits

Author SHA1 Message Date
wiredfool
2350eaad17 Merge pull request #1423 from wiredfool/debug-logging
Removing spammy debug logging
2015-09-20 10:32:47 +01:00
Andrew Murray
71c95c8e5f Restored deprecated methods with errors instead 2015-09-19 21:36:19 +10:00
Andrew Murray
5835c1e09c Added deprecation warning to ImageDraw setfont method, as specified in docs 2015-09-19 21:12:10 +10:00
Andrew Murray
baa5143394 Removed methods deprecated in 2.0 2015-09-19 21:06:12 +10:00
Andrew Murray
47366692d9 Removed ImagePalette methods, deprecated in 2.6 2015-09-19 21:06:12 +10:00
Andrew Murray
a3107af63f Removed ImageFileIO, deprecated since PIL 2015-09-19 21:06:12 +10:00
Andrew Murray
3841a11fb5 Removed ImageFont filename param, deprecated in 2.1 2015-09-19 21:06:12 +10:00
Andrew Murray
3e47ddbeeb Removed comment that Python 2 behaviour is deprecated 2015-09-19 21:06:11 +10:00
Eric L Frederich
e67a4c4270 preserve alpha during conversion; add tests; found bug and added TODOs 2015-09-18 16:15:24 -04:00
Eric L Frederich
86e775daa3 bug fix: Qt wants data aligned to 32 bits
Images in Qt show up incorrectly if each line is not aligned to 32 bits.

It is pretty common for an image's lines to be 32-bit alinged by chance.
Obviously any 32-bit image will not have any problem.
For the bug to manifest itself you'd need...
* a 1-bit image whose width is not a multiple of 32
* an 8-bit image who width is not a multiple of 4

Testing more images now and added a 7x13 png test image
2015-09-18 16:07:35 -04:00
wiredfool
a38fb2d0c5 Merge pull request #1384 from radarhere/gifparams
GIF 89a and animation parameters
2015-09-18 14:41:45 +01:00
homm
613f1e241e do not raise on broken images 2015-09-15 19:11:45 +03:00
Andrew Murray
baac3c2321 Removed trailing whitespace 2015-09-15 21:37:51 +10:00
wiredfool
5b7f6f2638 Fix docs to match code, see http://engineering.khanacademy.org/posts/making-thumbnails-fast.htm 2015-09-15 01:00:36 -07:00
homm
9930b05a33 fix tiff exif loading in case when file is empty or ended 2015-09-15 04:06:51 +03:00
homm
63f5f68837 unused imports 2015-09-15 04:04:27 +03:00
wiredfool
e4f9b697c6 Doc syntax error 2015-09-14 07:33:07 -07:00
wiredfool
1614f2fdb5 Documentation for IFD Changes 2015-09-14 07:01:57 -07:00
wiredfool
4adbc9735c Reorder load_* parameters to pass master tests 2015-09-14 04:35:09 -07:00
wiredfool
43f3e7504c Removing spammy debug logging 2015-09-14 03:42:08 -07:00
wiredfool
e3a8044a38 Removing low level PyAccess debug logging 2015-09-14 03:38:52 -07:00
wiredfool
05348d4f8f Reenabling failing/crashing tests, with fixes 2015-09-14 03:03:24 -07:00
wiredfool
b56d5ca403 Added indicator for multipage tiffs 2015-09-13 16:19:40 +01:00
wiredfool
86bda9a705 Legacy tifftags 2015-09-13 16:19:40 +01:00
wiredfool
70977bcbb5 Got the order of the enums wrong 2015-09-13 15:45:15 +01:00
wiredfool
4596df45c1 Versioned interface for TiffTags 2015-09-13 15:15:13 +01:00
wiredfool
ca24a44100 Rewrap intelligently 2015-09-13 14:16:12 +01:00
wiredfool
bb75b2d6ad Added doc comment 2015-09-13 14:09:42 +01:00
wiredfool
e1236d702d v1/v2 tag storage in IFD, legacy_api as a parameter to _saveitem, save both _tags_v* when saving as legacy api 2015-09-13 14:01:01 +01:00
wiredfool
a9396ab412 convert load_* functions to pure functions with no state 2015-09-13 11:07:43 +01:00
wiredfool
156972874d missed a set of _v2 versioning 2015-09-13 10:53:47 +01:00
wiredfool
b1fdff4034 In a twisty maze of bytes, text and arbitrary metadata, py2 and py3. New IFD is putting textdata in type7 metadata and returning bytes, old one put it in type 2 string and returned a string. This may be an issue 2015-09-11 23:44:23 +01:00
wiredfool
5f9fff0215 Restoring bad exif handling 2015-09-11 22:39:37 +01:00
wiredfool
47a963c2a4 Legacy/versioned interface 2015-09-11 22:39:37 +01:00
wiredfool
9bb4c51629 module level default api level 2015-09-11 22:39:37 +01:00
wiredfool
0c942911d9 fixed the rebase 2015-09-11 22:39:37 +01:00
Antony Lee
1b9b3749ca Reorder OPEN_INFO to cover both endiannesses.
By interleaving little and big-endian entries we make sure entries
exist for both cases.  Some additional entries created when the
big-endian was missing.  I am not sure of what entry to create for the
big-endian, 4-bit case (what is the order of the two entries within the
byte?).
2015-09-11 22:39:37 +01:00
Antony Lee
6309bfe921 Support too long ExtraSamples.
Some programs generate SamplesPerPixel entries in ExtraSamples instead
of SamplesPerPixel-3, cf. #1227.  This is a stopgap measure to support
them.  One could also decide to add generic code to always support
having SamplesPerPixel entries (by dropping the first 3).
2015-09-11 22:39:37 +01:00
Antony Lee
93abbd0caa Restore legacy TIFF API.
To have the old API that always returns tuples, and fractions as pairs,
set the `legacy_api` attribute of the IFD to True.

This should alleviate concerns about backwards compatibility.
2015-09-11 22:39:37 +01:00
Antony Lee
38f7e23495 Include tests of #1113. 2015-09-11 22:35:58 +01:00
Antony Lee
d5b46dce96 Fix MPO support, and Python2.6 support. 2015-09-11 22:34:50 +01:00
Antony Lee
56a3f0f2ab Fix EXIF support. 2015-09-11 22:34:50 +01:00
Antony Lee
974bcc074b Major rewrite of TIFF ImageFileDirectory.
Do not represent scalar tags as 1-element tuples.  Keep tag
type and count information in TiffTags.TAGS.  Normalize data in
ImageFileDirectory.__setitem__: wrap and unwrap tuples as needed,
convert rationals to floats.  (To ensure consistency, make the "tags"
attribute private.)  Interpret byte data as a series of integers rather
than a bytearray (which should only map to the "undefined" type).  On
Python3, if a str is assigned to an "undefined" tag, encode it as ASCII.

Note that a large number of tags have been removed from TiffTags.TAGS
because I do not have time to figure out the type and count of each of
them.  They should be restored before this gets merged in.

This obviously breaks backwards compatibility in a lot of ways...
2015-09-11 22:34:50 +01:00
Antony Lee
aba7a34036 Fix setting of TIFF ExtraSamples tag.
- force cast ExtraSamples to a list.
- fix calls to ImagingLibTiffSetField to include array length.
2015-09-11 22:26:54 +01:00
Andrew Murray
105e963505 Flake8 fixes 2015-09-11 19:28:19 +10:00
Hugo van Kemenade
991829b75a Merge pull request #1414 from wiredfool/pr1360
Catch TypeError in _getexif
2015-09-10 19:11:32 +03:00
Hugo van Kemenade
f631ddb1ef Merge pull request #1416 from wiredfool/pr1309
Fix for UnicodeDecodeError in TiffImagePlugin
2015-09-10 19:07:48 +03:00
Hugo van Kemenade
254201cac6 Merge pull request #1415 from wiredfool/dup_code
Dedup code in image.open
2015-09-10 19:06:35 +03:00
Bogdan Kubala
42b5a85cb4 Fix for UnicodeDecodeError in TiffImagePlugin
Fix for UnicodeDecodeError: ascii codec cannot decode byte while saving a TIFF image

Problem occured while saving TIFF images that contain non-ascii characters in metadata

Manually merged with master by wiredfool
2015-09-10 07:57:47 -07:00
wiredfool
60f44f2dce Merge pull request #1337 from homm/extraneous-jpeg-bytes
Skip any number extraneous chars at the end of JPEG chunks
2015-09-10 15:39:55 +01:00
wiredfool
9cbbab2da5 Dedup code in image.open 2015-09-10 07:17:40 -07:00
wiredfool
587698051f comments for future understanding 2015-09-10 04:36:07 -07:00
wiredfool
c614846fb7 Extend the fix to the other exif seek 2015-09-10 04:19:25 -07:00
wiredfool
1b40b6fd32 Merge pull request #1366 from uploadcare/fix-truncated-regression-from-master
Pillow fails to load truncated images with LOAD_TRUNCATED_IMAGES
2015-09-10 11:59:58 +01:00
wiredfool
5473766490 Merge pull request #1381 from bwrsandman/patch-1
ImagePalette: Add param documentation
2015-09-09 16:52:33 +01:00
homm
0b19a86087 skip any number extraneous chars at the end of chunks 2015-09-08 18:05:37 +03:00
homm
1d236f0262 unused var 2015-09-08 17:43:12 +03:00
homm
b078ad4599 raise IOError in all cases when image can't be loaded 2015-09-08 17:43:12 +03:00
homm
b8b3cdc146 fix truncated images loading 2015-09-08 17:43:11 +03:00
Andrew Murray
d21430234e Improved consistency of checks for flush 2015-09-02 23:48:22 +10:00
Andrew Murray
a0d38a3884 Fixed infinite loop on truncated file 2015-08-29 02:05:08 +10:00
Hugo van Kemenade
ce19b0dfca Merge pull request #1400 from radarhere/imagemorph
Check that images are L mode in ImageMorph methods
2015-08-28 17:24:53 +03:00
Andrew Murray
9026b81439 Check that images are L mode in ImageMorph methods 2015-08-28 22:54:17 +10:00
Dmitry Yantsen
a2b6b661d9 Added check for flush method existense for file-like object in tiffplugin setup 2015-08-28 15:00:06 +05:00
Andrew Murray
95fa2cdf08 Health fix 2015-08-28 18:56:48 +10:00
Andrew Murray
c6b13d294f Flake8 fixes 2015-08-25 22:27:18 +10:00
Andrew Murray
1b8d12b048 If only one frame, do not use image from sequence 2015-08-24 23:51:02 +10:00
Andrew Murray
e88e90b8ed Minor improvement, one less copy 2015-08-24 23:23:52 +10:00
Andrew Murray
88fca0f555 Fixed palette issue when saving 2015-08-24 23:23:07 +10:00
Andrew Murray
b8ff91ab3b Corrected version number when saving GIFs 2015-08-21 22:10:13 +10:00
Andrew Murray
f64bc891d4 Changed GifImagePlugin to include use image info params 2015-08-21 22:09:05 +10:00
Sandy
93a8e43ddf ImagePalette: Add param documentation 2015-08-20 15:25:08 -04:00
Hugo van Kemenade
d66f9eb7ea Merge pull request #1373 from radarhere/rotate
Fix fast rotate operations
2015-08-09 11:26:51 +03:00
Andrew Murray
e271471f8e Flake8 fix 2015-08-06 00:24:08 +10:00
Andrew Murray
f6d11a2803 Only use fast rotate operations if the expand flag is in use or the image is square 2015-08-06 00:23:14 +10:00
Andrew Murray
7775ff3ac7 Updated docstrings 2015-08-05 22:32:15 +10:00
Andrew Murray
457d39832d Added support for pathlib Path objects to open and save 2015-08-05 20:54:33 +10:00
Hugo van Kemenade
8faf299ca0 Merge pull request #1333 from radarhere/format
Changed register calls to use format property
2015-08-04 15:37:09 +03:00
Hugo van Kemenade
1368d972e7 Merge pull request #1367 from radarhere/imagegrab
Added support for ImageGrab.grab to OS X
2015-08-01 10:54:31 +03:00
Andrew Murray
7c0554c74e Added support for ImageGrab.grab to OS X 2015-08-01 17:44:13 +10:00
Andrew Murray
f5df0b86fc Fixed PSDraw stdout Python 3 compatibility 2015-07-31 20:59:59 +10:00
Andrew Murray
87d00fe441 Catch TypeError in _getexif file seek 2015-07-29 20:01:23 +10:00
Andrew Murray
2a3a34d2ff Treat MPO with unknown header as base JPEG file 2015-07-19 22:56:04 +10:00
Andrew Murray
94ed100bb2 Removed ImageDraw methods deprecated in PIL 1.1.15 2015-07-13 17:41:26 +10:00
Ömer Kala
1b8b2dbf33 Update Image.py 2015-07-12 17:42:55 +03:00
Andrew Murray
fa73879d19 Changed register calls to use format property 2015-07-04 23:29:58 +10:00
Alex Clark
67d1541c6f Merge pull request #1207 from anntzer/logger
Use logging instead of print.
2015-07-02 05:22:07 -04:00
Alex Clark
93eb15bec7 Commence 3.0.0.dev0 2015-07-02 05:20:15 -04:00
Alex Clark
80672b61e8 This is 2.9.0
Fixes #1174
2015-07-01 14:33:56 -04:00
Alex Clark
0d9d288a60 Merge pull request #1321 from radarhere/handler
Rearranged format handler fetching
2015-07-01 14:31:22 -04:00
Andrew Murray
abe25b7191 Rearranged format handler fetching 2015-07-01 09:19:28 +10:00
Andrew Murray
4fbea3e553 Added multiframe GIF test 2015-07-01 09:18:05 +10:00
Alex Clark
445a8c06fc Bump 2015-06-30 08:04:35 -04:00
Alex Clark
be1df0f33c Merge pull request #1320 from radarhere/gifmaker
Merged gifmaker into GifImagePlugin
2015-06-30 08:00:39 -04:00
Alex Clark
c489150602 Merge pull request #1319 from radarhere/is_animated
Added is_animated
2015-06-30 07:59:56 -04:00
Alex Clark
d29c3937ee Merge pull request #1302 from hugovk/1301_integer_expected
DPI should be tuple of ints, not floats
2015-06-30 07:57:28 -04:00
Andrew Murray
2c4fe7281f Merged gifmaker into GifImagePlugin 2015-06-30 18:02:48 +10:00
Andrew Murray
d20eef450b Added is_animated 2015-06-30 13:25:00 +10:00
Alex Clark
75be4af068 Merge pull request #1282 from radarhere/eoferror
Frame position when seeking past the end of file
2015-06-29 20:16:15 -04:00
Antony Lee
983c4602b5 Also log plugin opening failures.
This allows obtaining tracebacks of failures by plugins to open files by
setting the log-level to DEBUG, rather than by having to uncomment the
"traceback.print_exc" lines in Image.open.
2015-06-29 12:39:50 -07:00
Antony Lee
4e754e9c55 Use logging instead of print.
cf. #1191.

Only TiffImagePlugin and OLEFileIO still rely on (their own) DEBUG flag.
I left TiffImagePlugin as it is because I hope #1059 gets merged in
first, and OLEFileIO because it uses its own logic.

Untested, as usual.
2015-06-29 12:39:50 -07:00
Alex Clark
96944e2dd6 Bump 2015-06-29 08:57:55 -04:00
Andrew Murray
46fad0fd63 Fixed typo 2015-06-28 12:03:11 +10:00
Andrew Murray
afa4cadb23 Added width and height properties 2015-06-26 17:20:17 +10:00
hugovk
0564979cf9 Formatting 2015-06-25 23:19:07 +03:00
hugovk
3e6e50476b DPI should be tuple of ints, not floats 2015-06-25 23:17:21 +03:00
wiredfool
cea766e980 Merge pull request #1217 from radarhere/qt-convert
Add functions to convert: Image <-> QImage; Image <-> QPixmap
2015-06-22 11:32:55 -07:00
Andrew Murray
b553ad7a70 Further fixes 2015-06-21 16:33:55 +10:00
Andrew Murray
c644bf9455 Do not import ImageQt until it is requested 2015-06-19 15:55:35 +10:00
Andrew Murray
33d51d4255 Flake8 and health fixes 2015-06-19 15:36:23 +10:00
Andrew Murray
43e2c92802 Removed unused imports 2015-06-19 15:35:56 +10:00
Andrew Murray
1111e9fb35 Fixed frame position when seeking past the end of file 2015-06-19 00:49:18 +10:00
Andrew Murray
77169b2fdb Moved multiline split character to common functions 2015-06-18 13:21:39 +10:00
Alexander Schier
d626679c23 added support for multiline text drawing 2015-06-18 13:07:00 +10:00
Andrew Murray
fa1c4bffaf Do not attempt to subclass QImage if Qt is not installed 2015-06-18 11:21:14 +10:00
Andrew Murray
b318595666 Re-added ImageQt class 2015-06-18 11:21:14 +10:00
Roman Inflianskas
2d706d74dc add functions to convert: Image <-> QImage; Image <-> QPixmap (see #897) 2015-06-18 11:21:14 +10:00
Andrew Murray
4c02ae4061 Fixed _binary handling in _accept methods 2015-06-18 10:12:12 +10:00
Hugo van Kemenade
c52616464a Merge pull request #1277 from coldmind/bmp_mime
Register MIME type for BMP
2015-06-17 12:46:30 +03:00
wiredfool
d8c1add604 Merge pull request #1218 from radarhere/qt-compatibility
Adjusted ImageQt use of unicode() for 2/3 compatibility
2015-06-16 11:58:28 -07:00
wiredfool
9abedaab1d Merge pull request #1248 from radarhere/health
Further health fixes
2015-06-16 11:54:03 -07:00
wiredfool
e567267784 Merge pull request #1230 from hugovk/1229_xbm
Identify XBM file created with filename including underscore
2015-06-16 11:51:35 -07:00
wiredfool
30631902d6 Merge pull request #1231 from radarhere/image_palette
Copy image when saving in GifImagePlugin
2015-06-16 11:49:41 -07:00
Andriy Sokolovskiy
fe18b039ca Register MIME type for BMP 2015-06-16 20:33:27 +03:00
Andrew Murray
ecb1cef99b Added background color index saving to GifImagePlugin 2015-06-11 11:10:05 +10:00
Andrew Murray
42d1aabcc4 Removed interlace flag from GifImagePlugin getdata 2015-06-09 20:21:00 +10:00
Andrew Murray
46f439604c Added tests 2015-06-08 01:02:43 +10:00
Andrew Murray
0c51b7967e Fixed seek bug in FliImagePlugin 2015-06-08 01:02:35 +10:00
Antony Lee
3ad70423ad Fix typo in FliImagePlugin (seek -> _seek). 2015-06-08 00:40:23 +10:00
Antony Lee
51f3560dc4 Restore negative seeks for TIFF. 2015-06-08 00:40:23 +10:00
Antony Lee
1b80fe5507 Provide n_frames attribute to multi-frame formats.
cf #1190, #1192.  Tests missing.
2015-06-08 00:40:23 +10:00
Andrew Murray
ed2cca1e71 Fixed Tiff handling of bad EXIF data 2015-06-07 00:09:54 +10:00
Hugo
b816c048ad Merge pull request #1172 from radarhere/gif
Added duration and loop set to GifImagePlugin
2015-06-04 13:07:58 +03:00
Andrew Murray
77e2878734 Fixed redefining built-ins 2015-06-02 00:09:18 +10:00
Andrew Murray
26bcc443d1 Specified exception types 2015-05-30 09:18:27 +10:00
Hugo
022cebd723 Merge pull request #1232 from wiredfool/ico-bigendian
Ico files are little endian, ref #1204
2015-05-29 18:28:59 +03:00
Hugo
4aba749c3c Merge pull request #1245 from radarhere/patch-1
Fixed various typos
2015-05-29 08:28:39 +03:00
Hugo
af6bf89096 Merge pull request #1226 from radarhere/olefileio_upgrade
OleFileIO Upgrade
2015-05-29 08:09:42 +03:00
Andrew Murray
a996033079 Fixed various typos 2015-05-29 14:59:54 +10:00
Andrew Murray
a662a94316 Updated i16 and i32 to be in sync with _binary 2015-05-28 23:11:51 +10:00
Andrew Murray
cfedc8093c Fixed typo 2015-05-28 22:34:45 +10:00
Andrew Murray
29a3de6ccc Doc cleanup from wiredfool 2015-05-28 22:34:38 +10:00
Andrew Murray
1b98b76bcf Flake8 fixes 2015-05-28 22:34:23 +10:00
Andrew Murray
1208fe89cd Renamed _raise_defect to avoid protected member warnings 2015-05-28 22:15:53 +10:00
Andrew Murray
f55f2d13cb Various health fixes 2015-05-28 22:15:52 +10:00
Andrew Murray
b213f63c59 Removed pre-Python 2.3 workaround 2015-05-28 22:15:52 +10:00
Andrew Murray
0999ec95a0 Fixed typo in ImageEnhance.py 2015-05-28 17:20:33 +10:00
Hugo
b350a2ac95 Merge pull request #1239 from juztin/master
Setting transparency value to 0 when the tRNS contains only null byte(s)
2015-05-27 22:37:29 +03:00
Hugo
06c8d715f2 Merge pull request #1233 from radarhere/features
Separated out feature checking from selftest
2015-05-27 14:39:00 +03:00
Hugo
394b245a39 Merge pull request #1240 from radarhere/future
Correct future print imports
2015-05-27 14:37:38 +03:00