Commit Graph

1129 Commits

Author SHA1 Message Date
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
Andrew Murray
3c7e37d2d7 Replaced old-style classes 2015-05-27 00:07:21 +10:00
Andrew Murray
4e2de9d9ed Added missing future print imports and removed unnecessary imports 2015-05-23 20:28:41 +10:00
Justin Wilson
e317a729f3 Setting transparency value to 0 when the tRNS contains only null byte(s) 2015-05-22 16:37:50 -06:00
Andrew Murray
98fa49ea37 Changed module and codec names 2015-05-14 20:57:01 +10:00
Andrew Murray
799e8312cb Separated out feature checking from selftest 2015-05-14 19:43:28 +10:00
Andrew Murray
b1e8a68df8 When copying Image, copy ImagePalette as well 2015-05-14 09:57:56 +10:00
Eric Soroos
93461e6faa Ico files are little endian, ref #1204 2015-05-13 03:05:45 -07:00
Andrew Murray
ca89d431ba To avoid modifications, copy image when saving in GifImagePlugin 2015-05-13 16:39:25 +10:00
hugovk
98a8085d6c Header width/height may have multiple underscores: file_name_width 2015-05-12 12:49:43 +03:00
Andrew Murray
1dd3bef615 Upgraded OleFileIO to 0.42b 2015-05-10 23:55:33 +10:00
Andrew Murray
dbd3415709 Removed pre-Python 2.3 workaround 2015-05-08 21:37:05 +10:00
Andrew Murray
9e00c77884 Fixed variable name in JpegImagePlugin 2015-05-08 14:28:49 +10:00
Andrew Murray
3d52e797f8 Adjusted ImageQt use of unicode() for 2/3 compatibility 2015-05-07 21:47:08 +10:00
Hugo
f21b45c976 Merge pull request #1184 from darkfeline/add-doc
Clarify docstring about mask values [ci skip]
2015-05-05 19:29:04 +03:00