Commit Graph

488 Commits

Author SHA1 Message Date
Martin Panter
caa609c438 Do away with @functools.total_ordering to restore Python 2.6 support
* Manually implement __ne__() and __lt__()
* __gt__() and __ge__() not needed due to operator reflection
2014-01-31 01:32:46 +00:00
Martin Panter
704ed76229 Update documentation for Python 3 2014-01-30 23:47:12 +00:00
Martin Panter
a6fd013a77 Implement rich comparison using @total_ordering (2.7+, 3.2+) 2014-01-30 23:38:04 +00:00
Martin Panter
5143df8561 Use range() rather than xrange(), for Python 3 compatibility 2014-01-30 23:38:04 +00:00
Martin Panter
6977b592e3 Port more stuff to Python 3, dropping some pre-2.6 support 2014-01-30 23:38:04 +00:00
Martin Panter
cd61720845 Merge Pillow changes with Philippe Lagadec’s OleFileIO_PL fork
Conflicts:
	PIL/OleFileIO.py

I kept Philippe’s version of Unicode decoding that uses UTF-16LE. Pillow
started using Python’s “utf_16” codec in the meantime, but I understand it
uses native byte ordering by default.
2014-01-30 23:37:44 +00:00
Martin Panter
ac5cb028be Convert OleFileIO.py to LF newlines before merging 2014-01-30 23:30:58 +00:00
decalage
0b79c83709 updated readme 2014-01-30 23:29:57 +00:00
decalage
a468016b63 v0.26: added methods to parse stream/storage timestamps, improved listdir to include storages, fixed parsing of direntry timestamps 2014-01-30 23:29:57 +00:00
decalage
e1fe77b48b fix #12
updated readme
2014-01-30 23:29:57 +00:00
decalage
7d37cf071f - getproperties: improved exception handling
- _raise_defect: added option to set exception type
- all non-fatal issues are now recorded, and displayed when run as a script
2014-01-30 23:29:57 +00:00
decalage
8e826441b2 2013-05-24 v0.25 PL: - getproperties: option to not convert some timestamps
- OleMetaData: total_edit_time is now a number of seconds,
                       not a timestamp
                     - getproperties: added support for VT_BOOL, VT_INT, V_UINT
                     - getproperties: filter out null chars from strings
                     - getproperties: raise non-fatal defects instead of
                       exceptions when properties cannot be parsed properly
2014-01-30 23:29:57 +00:00
decalage
90f0b6796e updated readme 2014-01-30 23:29:57 +00:00
decalage
5b616ca1be v0.24: slight improvements in OleMetadata, updated readme. 2014-01-30 23:29:57 +00:00
decalage
c5cd0ccefc updated readme 2014-01-30 23:29:57 +00:00
decalage
d5166fd97e - new class OleMetadata to parse standard properties
- added get_metadata method to OleFileIO
2014-01-30 23:29:57 +00:00
decalage
25158fe8b1 - getproperties: added conversion from filetime to python datetime
- main: displays properties with date format
2014-01-30 23:29:54 +00:00
decalage
4bdd2b2bef version 0.23 - updated readme and setup.py 2014-01-30 23:29:40 +00:00
decalage
f88809e5f3 Updated readme in markdown and rst formats 2014-01-30 23:29:08 +00:00
decalage
ab541b1b4d Added comments for patch submitted by mete0r_kr, changed version 2014-01-30 23:21:25 +00:00
mete0r sarangbang
bbee2b5b8a support file-like object
fix #8
2014-01-30 23:21:25 +00:00
decalage
eaeb12f695 Fixed issue 2 - added close method to OleFileIO class 2014-01-30 23:21:25 +00:00
decalage
bd833a6972 Fixed issue 7 in OleFileIO.getproperties reported by chuckleberryfinn 2014-01-30 23:21:23 +00:00
decalage
491f3e9f99 updated readme 2014-01-30 23:20:31 +00:00
decalage
87a7ec955e version 0.21 2010-01-22 2014-01-30 23:20:28 +00:00
decalage
4248acb7a7 version 0.20 2009-12-11 2014-01-30 23:17:51 +00:00
decalage
61a3ceb812 version 0.19 2009-12-10 2014-01-30 23:17:51 +00:00
decalage
70a99619bc version 0.18 2007-12-05 2014-01-30 23:17:51 +00:00
decalage
18333d8edf version 0.17 2007-12-04 2014-01-30 23:15:35 +00:00
decalage
e614631025 version 0.15 2007-11-25 2014-01-30 23:15:17 +00:00
decalage
d6d3f50205 version 0.14 2007-11-19 2014-01-30 23:15:17 +00:00
decalage
fad61ba20c version 0.13 2007-09-04 2014-01-30 23:12:46 +00:00
decalage
f05f8001c5 Original version of OleFileIO.py from PIL, dated 2005-03-25, still current in PIL 1.1.7 on the 2011-10-20 2014-01-30 23:12:19 +00:00
Joaquín Cuenca Abela
bab068a337 Improve heuristic used when saving progressive and optimized JPEGs with high quality values. 2014-01-27 20:27:03 +01:00
wiredfool
6de70524f7 108 and 124 bit header fields are a superset of the 64 bit header 2014-01-26 20:43:21 -08:00
wiredfool
046a226f34 Don't use gigs of memory with invalid palette sizes 2014-01-23 20:11:05 -08:00
wiredfool
a549e77bd8 Fix hang by using temp file and command line args instead of stdin 2014-01-21 23:18:24 -08:00
wiredfool
8ce2faa8c9 enable eps test in test_imagefile, test passes 2014-01-21 23:17:47 -08:00
cgohlke
4446f05ac0 Fix saving EPS to open file objects on Python 2.x
Fix issue #470 and #479
2014-01-21 21:14:32 -08:00
wiredfool
2cc2a8cd62 Merge pull request #499 from wiredfool/webp_exif
*  Don't send None as exif to JpegImagePlugin._getexif -- homm 
*  Test for fix -- wiredfool
2014-01-20 11:03:02 -08:00
wiredfool
c8895fa7a4 Merge branch 'fix-typeerror' of https://github.com/homm/Pillow into webp_exif 2014-01-20 10:46:33 -08:00
homm
4ce2939b02 JpegImagePlugin._getexif expects no exif key in info dict, not None 2014-01-20 19:03:03 +04:00
Bruno Renié
e1e64904c7 Cleanup handling of ICC profile, more extensive testing 2014-01-19 19:09:40 +01:00
Bruno Renié
0348fcac51 Fix crash on save when icc_profile is None 2014-01-19 16:40:39 +01:00
homm
0a256f9e56 fix UnboundLocalError: local variable 't' referenced before assignment 2014-01-15 16:55:10 +04:00
David Schmidt
af11b908cf Update Image.py
docs update/fixes
2014-01-10 18:27:43 +01:00
Eric Soroos
9e069bfa54 I mode is native endian 2014-01-08 21:52:15 -08:00
wiredfool
79a7fdc100 I32 modes, not that I can actually use the I;32L/B ones 2014-01-08 21:18:38 -08:00
wiredfool
bfdc599c28 F mode support 2014-01-08 20:23:20 -08:00
François Boulogne
ead121d951 MAINT replace is False by not 2014-01-08 22:07:35 -05:00
François Boulogne
980517587d MAINT: use is instead of == for True, False, None 2014-01-07 21:24:21 -05:00
François Boulogne
923018dfeb MAINT: s/while 1:/while True:/ 2014-01-07 21:21:24 -05:00
wiredfool
84e2cf6eda I;16 modes 2014-01-06 23:15:00 -08:00
wiredfool
5dfadf623b LA, PA image modes 2014-01-06 22:51:31 -08:00
wiredfool
8a69f6caa0 use cffi by default in pypy, not in c-python 2014-01-06 22:08:14 -08:00
wiredfool
c3812f46b2 clamping channels to 255 2014-01-06 21:20:19 -08:00
wiredfool
53ba63fcd5 Raising proper ValueErrors 2014-01-06 21:19:58 -08:00
wiredfool
594276c45e existing behaviour is to clamp to max, not bitmask 2014-01-05 22:20:07 -08:00
wiredfool
32f4097d1e Fixes putalpha tests
Make sure we clear the pyaccess object each time we reset the self.im
object
2014-01-05 22:18:42 -08:00
wiredfool
d8a88a5390 Passes tests on python 3.2
Reorganized to remove ImagingMemoryInstance struct, only saving the
three pointers that we need (image, image8, image32) and the x/ysize
ints.
2014-01-05 22:00:09 -08:00
wiredfool
663f881b21 all original tests pass 2014-01-05 21:07:56 -08:00
wiredfool
5efe737f6f Cffi pixel access object, #248 2014-01-05 10:41:25 -08:00
cgohlke
db092e7d82 Correctly quote file names for WindowsViewer command 2014-01-01 19:04:30 -08:00
Alex Clark ☺
ae7edfa58d Merge pull request #441 from wiredfool/lut
Image.point fixes for numpy.array and docs
2013-12-28 06:08:08 -08:00
Alex Clark ☺
ad47ea5a52 Merge pull request #424 from wiredfool/trns-write-bydefault2
Save the transparency header by default for PNGs
2013-12-28 05:57:45 -08:00
Alex Clark ☺
d48f301d57 Merge pull request #423 from wiredfool/trns-png
Support for PNG tRNS header when converting from RGB->RGBA
2013-12-28 05:56:03 -08:00
Alex Clark ☺
e4ae62ae59 Merge pull request #418 from wiredfool/AurelienBallier-master
PyQT5 Support
2013-12-28 05:50:49 -08:00
wiredfool
aa1c0fdfb6 merge from master 2013-12-19 20:48:49 -08:00
wiredfool
4791d156f1 Comments/Docs, fixes #440 2013-12-10 16:05:05 -08:00
wiredfool
d05b5d9060 Restore numpy.array as valid lookup tables 2013-12-10 15:47:26 -08:00
Alex Clark
404b245d89 Fix travis 2013-12-05 05:32:33 -05:00
wiredfool
543f96de61 Merge from master 2013-11-30 09:57:00 -08:00
Alex Clark ☺
666b2ce9e0 Merge pull request #398 from tmccombs/escape
Quote filenames and title before using on command line
2013-11-29 16:07:12 -08:00
Alex Clark ☺
e269fc6755 Merge pull request #399 from tmccombs/double
Closes #397. Fixed Viewer.show to return properly.
2013-11-29 16:02:23 -08:00
Alex Clark ☺
eebb8c2a97 Merge pull request #408 from wiredfool/convert_doc
Image.convert mode 1 documentation update.
2013-11-29 15:15:23 -08:00
wiredfool
d65a2c8018 Save the transparency header by default for PNGs 2013-11-26 15:06:26 -08:00
wiredfool
0356741a29 Now using the rgbT2rgba conversion for L+transparency to RGBA, dropping the palette hack 2013-11-26 13:04:10 -08:00
wiredfool
c546c5a4c0 Added conversion for RGB+Transparency to RGBA that adds an alpha mask corresponding to the transparency value, fixes #421 2013-11-26 12:24:19 -08:00
wiredfool
94e3c75179 Merge from 12-bit-tiff 2013-11-21 21:41:54 -08:00
wiredfool
44e4d6b49d Comments 2013-11-21 20:57:48 -08:00
wiredfool
16c95fc295 Flags to force libtiff read/write 2013-11-21 20:37:52 -08:00
wiredfool
65e3bfaf33 added generic libtiff en/decoder instead of each compression version 2013-11-21 20:37:52 -08:00
wiredfool
9d06fa74be 12 bit tiffs come out as 12 bits from libtiff 2013-11-21 20:37:30 -08:00
wiredfool
886b075526 Merge from master 2013-11-20 22:52:47 -08:00
wiredfool
dbecc1cb70 Fix for failing ImageQt with mode 'L' image 2013-11-20 22:20:13 -08:00
Aurélien Ballier
938323bd2b Add Qt5 support. 2013-11-20 21:34:33 -08:00
wiredfool
e4fe6ae7a3 Read only implementation of 12bit tiffs 2013-11-20 16:56:23 -08:00
Esteban Santana Santana
8d27167fc7 More python3 fixes.
Changed the way the translate command that is passed to ghostscript is generated. This should now work on both python2.6+ and python3.
2013-11-20 02:54:31 -06:00
Esteban Santana Santana
3d1cd63afd We need to write bytes not strings.
Python3 compatibility issue, we need to write bytes to buffers and pipes, not strings. This should still work in python2.6+.
2013-11-20 02:41:35 -06:00
Esteban Santana Santana
9cd654917d Changed the Ghostscript() function inside of EpsImagePlugin to use subprocess.Popen() instead of the deprecated os.popen(). 2013-11-20 01:32:06 -06:00
Esteban Santana Santana
7989378bfd Added a way to specify the render size for EPS files.
There is now a scale parameter that you can pass in to the EpsImageFile.load() function. This parameter is used to specify at what scale Ghostscript renders the EPS internally. Scale needs to be an integer, and all of the internal structures (image size and bounding box) are scaled based on that parameter.
2013-11-17 01:26:44 -06:00
wiredfool
18ced74c06 Image.convert mode 1 documentation update. Fixes #407 2013-11-12 22:42:06 -08:00
David Schmidt
06301c9eba don't create a new palette on Image._new if one already exists (i.e. after im.copy()) 2013-11-12 14:41:35 +01:00
wiredfool
49191c78fb CHECK: support for int arrays as ifd entries 2013-11-07 16:23:20 -08:00
wiredfool
d2f1fa0e5f two additional tags for saving color images with libtiff 2013-11-05 20:49:09 -08:00
Thayne McCombs
840c7b9acb Closes #397. Fixed Viewer.show to return properly.
Viewer.show did not return a value, however ImageShow.show expected
Viewer.show to return a non-falsey value if successful. Therefor ImageShow.show
would continue to call multiple viewers.
2013-10-30 19:40:21 -06:00
Thayne McCombs
4da7c475ec Quote filenames and title before using on command line
This commit quotes title and filename paramaters that are passed to the
command line when showing an image.
2013-10-30 19:29:15 -06:00
cgohlke
42b8ec37d7 Support RGBA TIFF with missing ExtraSamples tag 2013-10-26 18:02:17 -07:00
Alex Clark ☺
e3d85700b4 Merge pull request #390 from wiredfool/webp-lossless
Lossless WEBP Support
2013-10-24 03:08:24 -07:00
Alex Clark ☺
b57d68e993 Merge pull request #389 from wiredfool/libtiff-save
Take compression as an option in the save call for tiffs
2013-10-24 03:03:27 -07:00
Alex Clark ☺
06ba0ea757 Merge pull request #386 from liftoff/master
Add support for saving lossless WebP.  Just pass 'lossless=True' to save()
2013-10-24 03:00:51 -07:00
wiredfool
63995459bc merge from master 2013-10-22 16:18:06 -07:00
wiredfool
f8abb98ffd Merge from master 2013-10-22 16:05:18 -07:00
wiredfool
2c1e800836 added new VP8 mode for lossless reading of RGBA, fixes failing tests 2013-10-22 12:44:09 -07:00
wiredfool
6a0516d2c9 final pass through atts: handling single rational tuple, using isStringType, flattening from single element tuple to string or int 2013-10-22 10:10:37 -07:00
wiredfool
8655209b4a rm debugging print 2013-10-22 09:24:51 -07:00
wiredfool
32e2f97b21 Tag issues with libtiff -- Need to parse the tuples for the ifd and the im.ifd. getattr + default for the im.ifd instead of silent try/except 2013-10-22 09:18:41 -07:00
Eric Soroos
3128a76495 MM and II 16 bit integer tiffs pack/write properly using libtiff on bigendian platform 2013-10-21 22:37:20 +00:00
Eric Soroos
6f8d968cbb MM and II 16 bit integer tiffs unpack properly using libtiff on bigendian platform 2013-10-21 22:17:33 +00:00
wiredfool
7ece94edc7 compression in encoder info 2013-10-21 09:30:06 -07:00
Dan McDougall
0a91541df8 Add support for saving lossless WebP. Just pass 'lossless=True' to save(). 2013-10-20 15:44:22 -04:00
Eric Soroos
175c572432 I;16 images are little endian, not native endian 2013-10-19 03:28:31 +00:00
hugovk
92507e5d0a Fix issue #382: TypeError with TransposedFont's getsize()
When getting the size of text with a TransposedFont it was failing:

  File "/usr/local/lib/python2.7/site-packages/PIL/ImageDraw.py", line 281, in textsize
    return font.getsize(text)
  File "/usr/local/lib/python2.7/site-packages/PIL/ImageFont.py", line 189, in getsize
    w, h = self.font.getsize(text)[0]
TypeError: 'int' object is not iterable

This is because self.font.getsize(text) returns a (w, h) tuple. To fix, remove the [0].

Test cases have been created in test_imagefont.py: 
test_rotated_transposed_font()
test_unrotated_transposed_font()

Both fail before the fix, both pass with the fix. Furthermore, the code I'm using this from ( https://github.com/mattdeboard/word_cloud ) now works as expected and creates a word cloud similar to the ones that PIL created.
2013-10-17 19:00:42 +03:00
Alex Clark ☺
55a0792815 Merge pull request #380 from wiredfool/lcms2
LCMS1 replaced with LCMS2
2013-10-16 09:09:15 -07:00
Stephen Johnson
c3de637362 Fully document PIL.PSDraw 2013-10-13 22:30:00 -07:00
Stephen Johnson
7030e50b36 Fully document PIL.ImageWin 2013-10-13 22:19:12 -07:00
Stephen Johnson
4b4f090258 Fully document PIL.ImageTk 2013-10-13 22:09:02 -07:00
Stephen Johnson
81ea5c35cb Fully document PIL.ImageStat 2013-10-13 21:57:07 -07:00
Stephen Johnson
f284c194ca Fully document PIL.ImageSequence 2013-10-13 21:49:35 -07:00
Stephen Johnson
6566a73bcf Fully document PIL.ImagePath 2013-10-13 21:41:21 -07:00
Stephen Johnson
7881c86bba Document PIL.ImagePalette as best I can 2013-10-13 21:27:07 -07:00
Stephen Johnson
0f3f6dd1a3 Move ImageGrab docs back to ImageGrab.rst instead of autodoc 2013-10-13 09:56:58 -07:00
Stephen Johnson
20b9d9774a Fully document PIL.ImageOps; fix some :py:mod: markup 2013-10-12 22:17:45 -07:00
Stephen Johnson
e2d88b5a51 Fully document ImageMath 2013-10-12 17:40:14 -07:00
Stephen Johnson
cf7b72f9b9 Fully document PIL.ImageGrab 2013-10-12 17:22:02 -07:00
Stephen Johnson
bc0f53aceb Fully document PIL.ImageFont 2013-10-12 17:14:12 -07:00
Stephen Johnson
a2c67dc3af Fully document PIL.ImageFilter 2013-10-12 16:49:32 -07:00
Stephen Johnson
348daf9490 Document ImageFile.Parser 2013-10-12 13:57:27 -07:00
Stephen Johnson
f2be739fdf Fully document PIL.ImageEnhance 2013-10-12 13:48:34 -07:00
wiredfool
ace78d0734 Lab is Uint, Int, Int. Tests failing 2013-10-11 23:31:47 -07:00
Stephen Johnson
88c700f3b2 Fully document PIL.ImageColor 2013-10-11 22:54:24 -07:00
Stephen Johnson
1e726ea36a Remove old ImageChops comments; redundant with docstrings 2013-10-11 22:46:57 -07:00
Stephen Johnson
546c20491f Improve ImageChops docstrings 2013-10-11 22:45:23 -07:00
Stephen Johnson
b533aa665e Fix many formatting mistakes in PIL.Image's docstrings 2013-10-11 22:18:40 -07:00
wiredfool
1c3932e89f Added LAB mode, core dumped 2013-10-10 23:27:34 -07:00
wiredfool
b506e2ad44 Fixed ability to create LAB profiles with color temperatures 2013-10-10 22:42:27 -07:00
wiredfool
ce041fd199 moving string functions into python, py27 and py32 now really work the same 2013-10-10 22:12:45 -07:00
wiredfool
21697f676b Merge branch 'master' into tifftags 2013-10-08 21:34:02 -07:00
wiredfool
08347569b5 Another python 2.6 detail 2013-10-08 11:32:51 -07:00
wiredfool
e9b0b09b72 Python 2.6 compatibility 2013-10-08 10:43:55 -07:00
wiredfool
a91283061e Python3 fixes 2013-10-07 23:30:55 -07:00
wiredfool
e35ed87be6 Writing multiple rational items 2013-10-07 23:09:41 -07:00
wiredfool
0204733fd6 Proper handling of both IFDs for libtiff usage 2013-10-07 23:03:50 -07:00
wiredfool
2188cf2baf typo 2013-10-07 23:03:13 -07:00
wiredfool
e6c8e5abec better handling of unicode, rational tuples 2013-10-07 23:02:59 -07:00
wiredfool
a3d267b96c Changes in the internal representation of ImageFileDirectory 2013-10-07 17:05:27 -07:00
wiredfool
951a5d4ce8 Using the public interface rather than the raw, undecoded interface 2013-10-07 17:05:27 -07:00
wiredfool
ce0e8b6abf streamlining internal representation of types in ImageFileDirectory 2013-10-07 17:05:27 -07:00
Alex Clark ☺
056690792e Merge pull request #364 from wiredfool/premultiply
Alpha Premultiplication support for transform and resize
2013-10-07 06:38:11 -07:00
wiredfool
10214bc6c4 Premultiply RGBA images prior to transform and resize and undo after 2013-10-04 13:25:32 -07:00