Commit Graph

29 Commits

Author SHA1 Message Date
Hugo van Kemenade
8e3c4e3658
Merge pull request #3965 from radarhere/truncated
Raise the same error if a truncated image is loaded a second time
2019-09-20 22:53:52 +03:00
Andrew Murray
023dcf27c2 Raise the same error if a truncated image is loaded a second time 2019-07-13 08:37:17 +10:00
Jon Dufresne
d50445ff30 Introduce isort to automate import ordering and formatting
Similar to the recent adoption of Black. isort is a Python utility to
sort imports alphabetically and automatically separate into sections. By
using isort, contributors can quickly and automatically conform to the
projects style without thinking. Just let the tool do it.

Uses the configuration recommended by the Black to avoid conflicts of
style.

Rewrite TestImageQt.test_deprecated to no rely on import order.
2019-07-06 16:11:35 -07:00
Hugo
53a7e35004 Format with Black 2019-06-10 18:22:46 +03:00
Andrew Murray
40bc46ff49 Moved ImageFile.Exif to Image.Exif 2019-04-01 20:03:02 +11:00
Andrew Murray
259a2ce2b2 Removed camelcase 2019-03-31 08:09:01 +11:00
Andrew Murray
64910d1921 Parse Nintendo and Fujifilm MakerNote tags 2019-03-28 21:13:12 +11:00
Andrew Murray
e6a7dc8bb4 Capitalisation 2019-03-28 21:13:12 +11:00
Hugo
9cbc4b1e3c Apply suggestions from code review
Co-Authored-By: radarhere <3112309+radarhere@users.noreply.github.com>
2019-03-28 21:13:12 +11:00
Andrew Murray
3caec4344e Added get_ifd method to access embedded IFDs 2019-03-28 21:13:12 +11:00
Andrew Murray
d5db62be7b Added EXIF class 2019-03-28 21:13:12 +11:00
Jon Dufresne
deb8a7aadd Remove additional references to removed handles_eof
handles_eof was removed in 90760a5f30.
2019-03-22 05:58:22 -07:00
Andrew Murray
58e60510e6
Merge pull request #3549 from radarhere/mimetype
Improved get_format_mimetype logic
2019-03-08 10:06:47 +11:00
Hugo
b75210d824
Merge pull request #3572 from jdufresne/seek-constants
Replace .seek() magic numbers with io.SEEK_* constants
2019-02-27 23:30:27 +02:00
Andrew Murray
fbaf87ae03 Replaced strings with docstrings 2019-02-03 15:58:24 +11:00
Jon Dufresne
a00fc33c04 Replace .seek() magic numbers with io.SEEK_* constants
A bit more readable.

https://docs.python.org/3/library/io.html#io.IOBase.seek
2019-01-12 18:22:07 -08:00
Andrew Murray
4c0e32ccf2 Improved get_format_mimetype logic 2019-01-06 07:00:00 +11:00
Andrew Murray
97ae0c42b1 Detect whether mimetype is image/png or image/apng 2019-01-02 14:13:10 +11:00
Andrew Murray
f8fbac68de Removed unused imports 2018-09-27 20:31:01 +10:00
Andrew Murray
c2189235af Line too long 2018-07-02 19:26:02 +10:00
Hugo
d97e16c903
Merge pull request #3190 from radarhere/mimetype
Added ImageFile get_format_mimetype method
2018-07-01 21:19:57 +03:00
Andrew Murray
c971bac651 Changed mmap file pointer to use context manager 2018-07-01 12:19:30 +10:00
Andrew Murray
dbf899fb78 Removed manual determination of mmap file length 2018-07-01 12:09:23 +10:00
Andrew Murray
6793b5bbd5 Added ImageFile get_format_mimetype method 2018-06-30 21:08:41 +10:00
wiredfool
d173e81798
Merge pull request #3023 from kkopachev/issue-3022
Certain corrupted jpegs can result in no data read
2018-03-21 07:55:17 +00:00
Konstantin Kopachev
1e9e64c8b0
Move jpeg-specific eof-processing to jpeg plugin 2018-03-06 22:52:08 -08:00
Andrew Murray
f22f1628eb At least two spaces before inline comment 2018-03-04 21:36:33 +11:00
Konstantin Kopachev
add2746ac6
Certain corrupted jpegs can result in no data read
On truncated jpeg, decoder can suspend waiting for additional bytes in
buffer. For some input files, decoder suspends on jpeg_start_decompress
stage. If at this point file reader reaches EOF, py code never gets back
to jpeg decoder and we end up with no bytes to result image. This leaves
us with some amount of potentially useful bytes undecoded and thrown
away.
Libjpeg docs suggest that in such situation, more appropriate would be
to add EOI marker to the end of buffer, which will allows decoder
to finish. https://github.com/libjpeg-turbo/libjpeg-turbo/blob/0dd9a2c1fd6c/libjpeg.txt#L1803-L1809
Docs also mention that adding EOI markers is what non-suspending code
does anyway.
2018-02-28 22:15:58 -08:00
wiredfool
0bb3f4fee9 source layout reorg 2017-12-28 14:49:47 +00:00